如果一个类扩展了另一个类,扩展类是否可以初始化而不是扩展它?
示例1:
public class FoodListAdapter extends BaseAdapter{
//rest of the codes in here
}
示例2:
public class FoodListAdapter {
private BaseAdapter fAdapter;
//rest of the codes here
}
Example2可以给出与Example1相似的结果吗?
答案 0 :(得分:0)
示例1是继承。
示例2是Aggregation,一种表示Has-A关系的方向单向关联。
示例1更脆弱,因为它直接将用户暴露给基础BaseAdapter
类。示例2可以封装并委托对BaseAdapter
的调用。如果有一天您决定删除BaseAdapter
,则FoodListAdapter
类的用户永远不必知道。
答案 1 :(得分:0)
两种策略都很好。这取决于你想要达到的目标。
第一个例子是继承,第二个例子是委托。
两者都是众所周知的设计模式。