24种设计模式之桥接模式

						**24种设计模式之桥接模式**

24种设计模式之桥接模式_第1张图片
类图很简单,声明了一个 Corp 抽象类,定义一个公司的抽象模型,公司首要是赚钱的,不赚钱谁开公司,
做义务或善举那也是有背后利益支撑的,我还是赞成这句话“天下熙熙,皆为利来;天下壤壤,皆为利往”,那
我们先看 Corp 类的源代码:

package com.cbf4life;
/**
* @author cbf4Life [email protected]
* I'm glad to share my knowledge with you all.
* 定义一个公司的抽象类
*/
public abstract class Corp {
/*
* 是公司就应该有生产把,甭管是什么软件公司还是制造业公司
* 那每个公司的生产的东西都不一样,所以由实现类来完成
*/
protected abstract void produce();
/*
* 有产品了,那肯定要销售呀,不销售你公司怎么生存
*/
protected abstract void sell();
//公司是干什么的?赚钱的呀,不赚钱傻子才干
public void makeMoney(){
//每个公司都是一样,先生产
this.produce();
//然后销售
this.sell();
}
}

合适的方法存在合适的类中,这个基本上是每本 Java 基础书上都会讲的,但是到实际的项目中应用的时候
就不是这么回事儿了,正常的很。我们继续看两个实现类如何实现的,先看 HouseCorp 类,这个是我最赚钱的公司:

package com.cbf4life;
/**
* @author cbf4Life [email protected]
* I'm glad to share my knowledge with you all.
* 房地产公司,按照翻译来说应该叫realty corp,这个是比较准确的翻译
* 但是我问你房地产公司翻译成英文,你第一反应什么?对嘛还是house corp!
*/
public class HouseCorp extends Corp {
//房地产公司就是盖房子
protected void produce() {
System.out.println("房地产公司盖房子...");
}
//房地产卖房子,自己住那可不赚钱
protected void sell() {
System.out.println("房地产公司出售房子...");
}
//房地产公司很High了,赚钱,计算利润
public void makeMoney(){
super.makeMoney();
System.out.println("房地产公司赚大钱了...");
}
}

然后看服装公司,虽然不景气,但好歹也是赚钱的:

package com.cbf4life;
/**
* @author cbf4Life [email protected]
* I'm glad to share my knowledge with you all.
* 服装公司,这个行当现在不怎么样
*/
public class ClothesCorp extends Corp {
//服装公司生产的就是衣服了
protected void produce() {
System.out.println("服装公司生产衣服...");
}
//服装公司买服装,可只卖服装,不买穿衣服的模特
protected void sell() {
System.out.println("服装公司出售衣服...");
}
//服装公司不景气,但怎么说也是赚钱行业也
public void makeMoney(){
super.makeMoney();
System.out.println("服装公司赚小钱...");
}
}

两个公司都有了,那肯定有人会关心两个公司的运营情况呀,我自己怎么也要知道它是生产什么的,赚多少
钱吧,那看看这个 Client.java 是什么样子的:

package com.cbf4life;
/**
* @author cbf4Life [email protected]
* I'm glad to share my knowledge with you all.
* 我要关心我自己的公司了
*/
public class Client {
public static void main(String[] args) {
System.out.println("-------房地产公司是这个样子运行的-------");
//先找到我的公司
HouseCorp houseCorp =new HouseCorp();
//看我怎么挣钱
houseCorp.makeMoney();
System.out.println("\n");
System.out.println("-------服装公司是这样运行的-------");
ClothesCorp clothesCorp = new ClothesCorp();
clothesCorp.makeMoney();
}
}

看,这个代码很简单,运行结果如下:
24种设计模式之桥接模式_第2张图片

你可能感兴趣的:(设计模式,设计模式)