设计模式之桥梁模式10

来源:互联网 发布:ubuntu server 安装 编辑:程序博客网 时间:2024/06/06 05:55

设计模式之桥梁模式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.
0 0
原创粉丝点击