当前位置 : 主页 > 手机开发 > 其它 >

在我们需要向List <>添加行为的地方使用组合而不是继承有什么好处?

来源:互联网 收集:自由互联 发布时间:2021-06-19
在这个例子中,选项2的优缺点是什么? 选项1(继承): public class SalesList : ListSales{ //methods that add extra behavior ListSales} 备选案文2(组成): public class SalesList { private ListSales _list; //methods that
在这个例子中,选项2的优缺点是什么?

选项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.

网友评论