设计模式之桥梁模式10

设计模式之桥梁模式10

背景

假如某老板有一房地产公司公司,专门卖房赚钱。另外最近ipod,衣服等赚钱,老板想开个专门山寨的各种公司。但是,老板只关注赚钱。具体的生产,销售,老板不管。

类图

设计模式之桥梁模式

代码实现

首先定义一个产品Product.java,可以被房地产,山寨等产品继承。

//定义一个产品
public abstract class Product {

    //生产产品的动作
    public abstract void beProduced();

    //销售的动作
    public abstract void beSelled();

}

定义房地产产品

public class Hourse extends Product{

    @Override
    public void beProduced() {
        System.out.println("hourse produced ...");
    }

    @Override
    public void beSelled() {
        System.out.println("hourse selled ...");
    }

}

定义一些山寨的产品

public class Ipod extends Product{

    @Override
    public void beProduced() {
        System.out.println("ipod produced ...");
    }

    @Override
    public void beSelled() {
        System.out.println("ipod selled ...");
    }

}

public class Clothes extends Product{

    @Override
    public void beProduced() {
        System.out.println("clothes produced ...");
    }

    @Override
    public void beSelled() {
        System.out.println("clothes selled ...");
    }

}

定义一个抽象的公司

//定义一个抽象公司
public abstract class Corp {

    //这 个公司拥有的产品是什么
    private Product product;

    //初始化公司
    public Corp(Product product){
        this.product = product;
    }

    //公司赚钱的方式
    public void makeMoney() {
        this.product.beProduced();
        this.product.beSelled();
    }

}

房地产公司

public class HourceCorp extends Corp{

    public HourceCorp(Hourse hourse) {
        super(hourse);
    }

    public void makeMoney() {
        super.makeMoney();
        System.out.println("hourse make much money.");
    }

}

山寨公司

public class CopyCorp extends Corp{

    public CopyCorp(Product product) {
        super(product);
    }

    public void makeMoney() {
        super.makeMoney();
        System.out.println("copy make less money.");
    }

}

老板调用查看自己公司赚钱的情况

public class Client {

    public static void main(String[] args) {
        //老板主要业务,房地产公司
        HourceCorp hourseCorp = new HourceCorp(new Hourse());
        hourseCorp.makeMoney();
        System.out.println();

        //山寨公司-卖衣服
        CopyCorp copyCorp = new CopyCorp(new Clothes());
        copyCorp.makeMoney();
        System.out.println();

        //山寨公司-卖ipod
        copyCorp = new CopyCorp(new Ipod());
        copyCorp.makeMoney();
    }

}

运行情况是这样的。

hourse produced ...
hourse selled ...
hourse make much money.

clothes produced ...
clothes selled ...
copy make less money.

ipod produced ...
ipod selled ...
copy make less money.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值