软件复用可采用类的继承方式和类的聚合方式,比较两者的优缺点。
正确答案:聚合:一个对象拥有另一个对象或对另一个对象负责(即一个对象包含另一个对象或是另一个对象的一部分)并且聚合对象和其所有具有相同的生命周期(即所谓的“同生共死”关系)。
聚合复用优点:
①容器类仅能通过被包含对象的接口来对其进行访问。
②“黑盒”复用,因为被包含对象的内部细节对外是不可见。
③包装性好。
④实现上的相互依赖性比较小。
⑤每一个类只专注于一项任务。
⑥通过获取指定其他的具有相同类型的对象的使用,可以在运行期间动态地定义(对象的)组合。
聚合的缺点:
①导致系统中的对象过多
②为了能将多个不同的对象作为组合块来使用,必须仔细地对接口进行定义。
类继承:是一种通过扩展(一个已有对象的)实现,从而获得新功能的复用方法。
继承的优点:
①容易进行新的实现,因为其大多数可继承而来
②易于修改或扩展那些被复用的实现。
继承的缺点:
①破坏了封装性,因为这会将父类的实现细节暴露给子类
②“白盒”复用,因为父类的内部细节对于子类而言通常是可见的
③当父类的实现更改时,子类也不得不随之更改
④从父类继承来的实现将不能在运行期间进行改变。
聚合复用优点:
①容器类仅能通过被包含对象的接口来对其进行访问。
②“黑盒”复用,因为被包含对象的内部细节对外是不可见。
③包装性好。
④实现上的相互依赖性比较小。
⑤每一个类只专注于一项任务。
⑥通过获取指定其他的具有相同类型的对象的使用,可以在运行期间动态地定义(对象的)组合。
聚合的缺点:
①导致系统中的对象过多
②为了能将多个不同的对象作为组合块来使用,必须仔细地对接口进行定义。
类继承:是一种通过扩展(一个已有对象的)实现,从而获得新功能的复用方法。
继承的优点:
①容易进行新的实现,因为其大多数可继承而来
②易于修改或扩展那些被复用的实现。
继承的缺点:
①破坏了封装性,因为这会将父类的实现细节暴露给子类
②“白盒”复用,因为父类的内部细节对于子类而言通常是可见的
③当父类的实现更改时,子类也不得不随之更改
④从父类继承来的实现将不能在运行期间进行改变。
答案解析:有

微信扫一扫手机做题
