在这个例子中,选项2的优缺点是什么? 选项1(继承): public class SalesList : ListSales{ //methods that add extra behavior ListSales} 备选案文2(组成): public class SalesList { private ListSales _list; //methods that
选项1(继承):
public class SalesList : List<Sales> { //methods that add extra behavior List<Sales> }
备选案文2(组成):
public class SalesList { private List<Sales> _list; //methods that add extra behavior to List<Sales> }选项1
– 优点 – 继承的所有优点&再利用
– 缺点 – 代码现在向消费者发出信号,表明它是从列表中删除的.如果需要在以后更改,那么所有相关的消费者都将受到影响.
选项2
– 优点 – 销售数据存储的实施细节从消费者中抽象出来.因此,如果实现需要改变(例如,例如字典),该类的消费者将免于这些改变.
– 缺点 – SalesList类现在需要公开其他方法来获取和/或设置内部_list对象.这是需要维护的附加代码.此外,如果内部实现发生变化,您需要注意仍然支持以前的行为……
只是想到了一些想法.
HTH.