我总结了3种方式封装,不知道哪种情况用哪个方式好,大家帮我辨析一下,3种方式的使用环境场景:Class A 没有get()方法,我想用这个方法,所以我拓展其方法方式一:Class B extend A,在B中加入get()   ————最常用方式二:新建个类ForAget,然后ForAget f=new ForAget(A), f.get();   ————仿照DateOutputStream和OutputStream二者的关系方式三:新建个类Aget,然后Aget a=A.Aget(),a.get();  ————仿照Iterator i=ArrayList.iterator; i.next();

解决方案 »

  1.   

    方法1是 is a 的关系
    方法2是 has a 的关系方法1应该在可能的情况下优先使用。不过好多时候无法继承,只能has a
      

  2.   

    方法二明白了,好像在设计模式上叫“装饰”,就是说可能很多类c,d,e都有可能用到get()方法,而且实现方式类似,那么用这个方式避免了c,d,e都要分别继承一遍,当然,前提是C,D,E都实现了同一个接口
    方法三的好处呢?
      

  3.   

    每种封装都有自己的好处, 建议看看设计模式, 了解一下 is a和has a的关系.
    在实际应用中, 是很有用处的.