java 组合优与继承_为什么组合优于继承?

1.JavaBean如何设计

我们有一个User类,但是需要不同的角色,自然而然的我们想到了继承

public class User{

public String name;

public String email;

public String password;

}

public class Student extends User{

}

public class Admin extends User{

}

public class Teacher extends User{

}

这里有个问题,我们Teacher 还有其他属性,例如 String title,我们可以把它放到User类中(属性不是太多,可以接受),当成公共字段,但也可以把它提出来单独放到Teachcer类里。

当Teacher类不想受到限制,想更多的扩展,我们可以不继承User(组合来了!!!请注意)

public class Teacher {

public User User;

public String title;

}

2.类继承和对象组合

谈到类继承,我们最常见的就是Activity,那为什么Activity不用实现用继承呢?如果Activity用实现,那我们每个类都要自己去实现oncreate。。。(岂不要疯掉),现在父类帮我们实现了一些方法,我们子类去继承,不用子类自己去实现了。

我们平时自己封装的BaseFragment,在父类中我们写一些共有的方法,如果有需要变更的地方,自己可以自己去实现这个方法。

请注意一下这种情况:在BaseFragment中,我们有好多方法,当当我们需要修改一个方法时,子类也会受到影响,我们还要去修改子类,有点麻烦。

方案:我们的FragmentOne 、FragmentTwo可以不去继承BaseFragment,直接去继承v4包下的Fragment,我们写一个BasePrensenter,两个子类去继承它OnePrensenter、TwoPrensenter,在FragmentOne 中声明OnePrensenter,他俩组合,MVP自然而然就来了,很舒服

3. 面向接口编程

前面提到了,这个只是个记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值