美文网首页
为什么组合优于继承?

为什么组合优于继承?

作者: 王小贱_ww | 来源:发表于2017-08-29 23:17 被阅读713次
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. 面向接口编程

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

相关文章

  • 10 - 深入理解组合&继承

    在面向对象编程中,有一条非常经典的设计原则,那就是:组合优于继承,多用组合少用继承。为什么不推荐使用继承?组合相比...

  • 为什么组合优于继承?

    1.JavaBean如何设计 我们有一个User类,但是需要不同的角色,自然而然的我们想到了继承 这里有个问题,我...

  • 面向对象(七)组合优于继承?

    组合优于继承,多用组合少用继承。 1、为什么不推荐使用继承? 继承是面向对象的四大特性之一,用来表示类之间的 is...

  • 组合优于继承

    《Effective Java 中文版第2版》书中第16条中说到: 继承是实现代码复用的有力手段,但它并非永远是完...

  • 组合和继承

    需要一个类的某个功能使用组合需要那个类的所有功能使用继承组合优于继承,接口优于实现

  • 学习笔记-为何说多用组合少用继承

    在面向对象的编程中,有一条非常经典的设计原则:组合优于继承,多用组合少用继承。什么不推荐使用继承?组合比继承有哪些...

  • 为什么有“组合优于继承”的说法

    首先需要注意, 广为流传的“组合优于继承” 的说法是一种不严谨的翻译, 其来源如下 众多设计模式包含的2个最核心原...

  • 组合优于继承之__getattr__

    查找一个实例或类的属性失败时,会调用__getattr__方法查找相应的属性,如果类里面没有定义该方法的话,则会报...

  • 装饰者解耦的秘诀

    装饰者解耦的秘诀 组合优于继承原则是个很棒的想法,可以解决继承的地狱。然而,几乎没有库、示例代码或者教程来教你如何...

  • 装饰器模式

    装饰器模式 思想: 组合优于继承 JDK 的 IO 流就是使用包装模式对流进行各种增强如下代码, 用 Buffer...

网友评论

      本文标题:为什么组合优于继承?

      本文链接:https://www.haomeiwen.com/subject/rhoadxtx.html