`

设计模式----桥梁模式(bridge pattern)

 
阅读更多
Product.java代码如下:
package com.designPattern.bridge;

/**
 * 
 * @author yangjianzhou
 * 这是整个集团公司的产品类
 */
public abstract class Product {
 
	public abstract void beProducted();
	
	public abstract void beSelled();
}



House.java代码如下:
package com.designPattern.bridge;

public class House extends Product{

	@Override
	public void beProducted() {
		System.out.println("生产出的房子是这样的!");
		
	}

	@Override
	public void beSelled() {
		System.out.println("生产出的房子卖出去了!");
		
	}

}



Clothes.java代码如下:
package com.designPattern.bridge;

public class Clothes extends Product{

	@Override
	public void beProducted() {
		System.out.println("生产出的衣服是这样的!");
		
	}

	@Override
	public void beSelled() {
		System.out.println("衣服被卖出去了!");
		
	}

}



IPod.java代码如下:
package com.designPattern.bridge;

public class IPod extends Product{

	@Override
	public void beProducted() {
		System.out.println("生产出的IPod是这样的!");
		
	}

	@Override
	public void beSelled() {
		System.out.println("IPod被卖出去了!");
		
	}

}



Corp.java 代码如下:
package com.designPattern.bridge;

public  abstract class Corp {
  
	/*
	 * 这就是桥梁
	 */
	private Product product;
	
	/**
	 * 这个构造函数的目的就是让子类必须重写自己的有参构造函数,把产品类传进来
	 * @param product
	 */
	public Corp(Product product){
		this.product = product;
	}
	
	public void makeMoney(){
		this.product.beProducted();
		
		this.product.beSelled();
	}
}



HouseCorp.java代码如下:
package com.designPattern.bridge;

public class HouseCorp extends Corp{

	public HouseCorp(House house) {
		super(house);
		
	}

	@Override
	public void makeMoney() {
		
		super.makeMoney();
		System.out.println("房地产公司赚大钱了!");
	}

}



ShanZhaiCorp.java代码如下:
package com.designPattern.bridge;

public class ShanZhaiCorp extends Corp{

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

	@Override
	public void makeMoney() {
		
		super.makeMoney();
		System.out.println("我赚钱了!");
	}

}



Client.java代码如下:
package com.designPattern.bridge;

public class Client {
	
	public static void main(String[] args) {
		
		House house = new House();
		
		System.out.println("================房地产公司是这样运作的=============");
		HouseCorp houseCorp = new HouseCorp(house);
		houseCorp.makeMoney();
		System.out.println("==================山寨公司是这样运行的==============");
		ShanZhaiCorp shanZhaiCorp = new ShanZhaiCorp(new IPod());
		shanZhaiCorp.makeMoney();
		System.out.println("==================山寨公司是这样运行的==============");
		shanZhaiCorp = new ShanZhaiCorp(new Clothes());
		shanZhaiCorp.makeMoney();
	}

}



运行效果如下:
================房地产公司是这样运作的=============
生产出的房子是这样的!
生产出的房子卖出去了!
房地产公司赚大钱了!
==================山寨公司是这样运行的==============
生产出的IPod是这样的!
IPod被卖出去了!
我赚钱了!
==================山寨公司是这样运行的==============
生产出的衣服是这样的!
衣服被卖出去了!
我赚钱了!
分享到:
评论

相关推荐

    C#设计模式-吕震宇

    设计模式(16)-Bridge Pattern 设计模式(15)-Facade Pattern 设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern ...

    flink-table-api-java-bridge_2.11-1.12.7-API文档-中文版.zip

    赠送jar包:flink-table-api-java-bridge_2.11-1.12.7.jar; 赠送原API文档:flink-table-api-java-bridge_2.11-1.12.7-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.11-1.12.7-sources.jar; 赠送...

    design-pattern-java.pdf

    桥接模式-Bridge Pattern 处理多维度变化——桥接模式(一) 处理多维度变化——桥接模式(二) 处理多维度变化——桥接模式(三) 处理多维度变化——桥接模式(四) 组合模式-Composite Pattern 树形结构的处理...

    flink-table-api-java-bridge_2.11-1.13.2-API文档-中英对照版.zip

    赠送jar包:flink-table-api-java-bridge_2.11-1.13.2.jar; 赠送原API文档:flink-table-api-java-bridge_2.11-1.13.2-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.11-1.13.2-sources.jar; 赠送...

    BRIDGE-SOIC-4 BRIDGE-RB20整流桥PCB封装库(ALTIUM 2D 3D视图库).PcbLib

    BRIDGE-[BU] BRIDGE-[DB-1] BRIDGE-[DFM] BRIDGE-[GBL] BRIDGE-[GBPC] BRIDGE-[GBPC-W] BRIDGE-[GBPC1] BRIDGE-[GBU] BRIDGE-[GBU-4B] BRIDGE-[GSIB-5S] BRIDGE-[KBL] BRIDGE-[KBPM] BRIDGE-[KBU] BRIDGE-[PB] ...

    vertx-bridge-common-3.9.0-API文档-中英对照版.zip

    赠送jar包:vertx-bridge-common-3.9.0.jar; 赠送原API文档:vertx-bridge-common-3.9.0-javadoc.jar; 赠送源代码:vertx-bridge-common-3.9.0-sources.jar; 赠送Maven依赖信息文件:vertx-bridge-common-3.9.0....

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    创建型模式总结 (100%) 设计模式面面观(9):适配器模式(Adapter Pattern)-结构型模式 (100%) 设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式 (100%) 设计模式面面观(11):组合模式...

    flink-table-api-java-bridge_2.12-1.14.3-API文档-中英对照版.zip

    赠送jar包:flink-table-api-java-bridge_2.12-1.14.3.jar; 赠送原API文档:flink-table-api-java-bridge_2.12-1.14.3-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.12-1.14.3-sources.jar; 赠送...

    flink-table-api-java-bridge_2.12-1.14.3-API文档-中文版.zip

    赠送jar包:flink-table-api-java-bridge_2.12-1.14.3.jar 赠送原API文档:flink-table-api-java-bridge_2.12-1.14.3-javadoc.jar 赠送源代码:flink-table-api-java-bridge_2.12-1.14.3-sources.jar 包含翻译后...

    flink-table-api-java-bridge_2.11-1.10.0-API文档-中文版.zip

    赠送jar包:flink-table-api-java-bridge_2.11-1.10.0.jar; 赠送原API文档:flink-table-api-java-bridge_2.11-1.10.0-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.11-1.10.0-sources.jar; 赠送...

    clickhouse-jdbc-bridge-2.0.2-SNAPSHOT-shaded.jar

    clIckhouse使用JDBC表引擎必须的一个SQL代理服务

    c++设计模式-结构型模式-桥接模式

    c++设计模式-结构型模式-桥接模式;qt工程,c++简单源码; 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度...

    flink-table-api-java-bridge_2.11-1.13.2-API文档-中文版.zip

    赠送jar包:flink-table-api-java-bridge_2.11-1.13.2.jar; 赠送原API文档:flink-table-api-java-bridge_2.11-1.13.2-javadoc.jar; 赠送源代码:flink-table-api-java-bridge_2.11-1.13.2-sources.jar; 赠送...

    debug-bridge-6.7.79.emile.limonia.xpi

    安装debug-bridge 插件,实现Zotero执行外部javascript文件。 在Zotero中点击菜单Tools(工具)—>Developer(开发者)—>Run Javascript,在Code文本框中输入并运行代码。

    设计模式--C++

    1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象接口 9 1.6.4 描述对象的实现 10 1.6.5 运用复用机制 13 1.6.6 关联运行时刻和编译时刻的结构 15 1.6.7 设计应支持...

    vertx-bridge-common-3.9.0-API文档-中文版.zip

    赠送jar包:vertx-bridge-common-3.9.0.jar; 赠送原API文档:vertx-bridge-common-3.9.0-javadoc.jar; 赠送源代码:vertx-bridge-common-3.9.0-sources.jar; 赠送Maven依赖信息文件:vertx-bridge-common-3.9.0....

    设计模式C++学习之桥梁模式(Bridge)

    设计模式C++学习之桥梁模式(Bridge)

    36种最新设计模式整理

    Design Pattern: Bridge 模式 38 Design Pattern: Composite 模式 40 Design Pattern: Decorator 模式 41 Design Pattern: Facade 模式 44 Design Pattern: Flyweight 模式 46 Design Pattern: Proxy 模式(一) 48 ...

    JAVA设计模式-day2.pdf

    JAVA设计模式-day2,请的行业大能讲得课程,涉及:创建模式(5种: 1、 工厂方法模式(Factory Method); 2、 抽象工厂模式; 3、 单例模式(Singleton) • 4、 建造者模式(Builder); 5、 原型模式(Prototype...

    linux网桥程序(bridge-utils-1.4)及帮助

    bridge-utils-1.4,linux系统上将多个网卡桥接的程序,还有帮助文档

Global site tag (gtag.js) - Google Analytics