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

为什么组合优于继承?

作者: 王小贱_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. 面向接口编程

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

    相关文章

      网友评论

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

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