2019零基础学Android第6课——Java代码复用

​今天给大家带来的是设计模式的前身,写项目的时候,完成功能模块是最基本的需求,而如何将代码写的更优雅,能适应未来需求的不断变更过,具有极高的可维护性和扩展性,这就是编程的艺术了。

组合

什么叫做组合?一句话描述:将一个已有的对象引用置于一个新类中。

组合是一种较弱的关系,是has-a的关系。

看下面代码:

public class Animal {
    private void beat(){
        System.out.println("心脏跳动...");
    }
    public void breath(){
        beat();
        System.out.println("呼吸中...");
    }
}
​
public class Bird {
    //将Animal作为Bird的成员变量
    private Animal a;
    public Bird(Animal a){
        this.a = a;
    }
    public void breath(){
        a.breath();
    }
    public void fly(){
        System.out.println("我在飞..");
    }
    public static void main(String[] args){
        Animal animal = new Animal();
        Bird b = new Bird(animal);
        b.breath();
        b.fly();
    }
}

 

继承

Java的继承具有单继承的特点:每个类只有一个直接父类,可以有多个间接父类。继承是一种"is-a"的关系。

public class Fruit {
    //成员变量
    public double weight;
    public void info(){
        System.out.println("我是一个水果!重" + weight + "g!");
    }
}
public class Apple extends Fruit {
    public static void main(String[] args){
        Apple a = new Apple();
        a.weight = 10;
        a.info();
    }
}

 

组合和继承的对比

  • 继承结构,子类可以获得父类内部实现细节,破坏封装。组合结构,整体不能看到部分的内部实现细节,不会破坏封装

  • 继承结构中,子类可以回溯父类,直到Object类,这样就可以根据业务实现多态(向上转型和向下转型)  ,组合中不可以实现多态

 

如何选择

  • 两个类之间,明显的存在整体和部分的关系,则应该使用组合来实现复用。当我们需要对已有类做一番改造,从而得到新的符合需求的类,则应该使用继承。

  • 当需要被复用的类一定不会改变时,应该使用组合,否则,应该使用继承。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值