题目

本周作业,请在下周末(3月31号)之前提交。
===========================
假定已经存在List类如下:
Class List {
Public List( );
Public void add (int element);
Public int firstElement ( );
Public int size ( );
Public int includes (int element);
Public void remove (int element);
};
利用类List创建一个集合类Set,包括集合对象的三个操作:add(增加数值到集合)、size(确定集合种元素的数目)、includes(检查集合中是否包含某数值)。
(1)请使用继承方法完成Set类;
(2)请使用组合方法完成Set类;
(3)说明哪种方法更好,并简要分析原因。
 

解答

(1)请使用继承方法完成Set类;
(2)请使用组合方法完成Set类;
(3)说明哪种方法更好,并简要分析原因。
组合是两种技术中较为简单的一种,他可以更清楚地指出在特定数据结构中需要执行哪些操作,而无需考虑列表类定义的所有操作。
使用继承时,会使得子类与父类产生强耦合,子类的设计受到父类的限制。如果后续需求发生变化,可能需要频繁修改子类。当程序员想了解一个通过继承方式构建的类时,需要在不同的类之间来回切换。组合实现更加松耦合。使用组合,Set类不受List类的改变影响,可以更灵活地替换底层的数据结构,而不需要修改Set类的代码。这种灵活性使得代码更容易维护和扩展。
但是使用继承会使代码非常的简洁,因为不必为子类编写任何访问父类功能的代码。两者各有优劣,可以根据需要来选择。
 
Loading...