建造者模式
将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示。
1、例子解释:
同样一种菜肴,同样的菜谱,不同的厨师炒出品位可能不一样,虽然加入的佐料一样,但是北方的厨师炒的口味可能比较重,而南方的厨师的则比较清淡。这就是“同样的构建过程可以创建不同的表示”。
2、UML类图:
Product类:具体的产品;
Director类:指挥者,构建一个使用Builder接口的对象;
Builder接口:是为创建一个Product对象的各个组件指定的抽象接口;
ConcreteBuilder类:具体的建造者,实现Builder接口,构造和装配各个部件。
3、例子代码:
package test.patterns.builder;
//产品
class Food{
public StringBuffer smell = new StringBuffer();
}
//指挥者
class Diretor{
Cooks cooker;;
public Diretor(Cooks cooker) {
this.cooker = cooker;
}
public void cook(){
cooker.add_oil();
cooker.add_salt();
}
}
//抽象建造者
abstract class Cooks {
public abstract void add_oil();
public abstract void add_salt();
}
//具体建造者-东北
class Cook_Dongbei extends Cooks{
public Food food = new Food();
@Override
public void add_oil() {
food.smell.append("add_oil more ");
System.out.println("add_oil more~");
}
@Override
public void add_salt() {
food.smell.append("add_salt more");
System.out.println("add_salt more~");
}
public Food getFood() {
return food;
}
}
//具体建造者-南方
class Cook_Guangdong extends Cooks{
//...与上边类似
}
//测试代码
public static void main(String[] args) {
Cook_Dongbei cook_dongbei =new Cook_Dongbei();
Diretor diretor = new Diretor(cook_dongbei);
diretor.cook();
Food food = cook_dongbei.getFood();
System.out.println(food.smell);
}
4、应用
JDK:
java.lang.StringBuilder#append()
java.lang.StringBuffer#append()
游戏场景中需要自定义人物时应该也可以用到。身高:高的,矮的;体型:胖瘦;皮肤:黑白黄;运动能力:偏进攻,偏防守,攻防兼备全能型;···
以上参考自JavaWeb设计模式之道以及网络。
Have a nice day~
- 大小: 40.8 KB
分享到:
相关推荐
Java设计模式-建造者模式详解
java常用设计模式-建造者模式
设计模式-建造者模式,该模式涉及产品,构造者,指挥者、调用者等几个角色,职责明确,在实际项目中使用得比较多。
设计模式-建造者模式(讲解及其实现代码)
4.设计模式-建造者模式1
Java 设计模式-建造者模式(Builder)结合Android小知识讲解,简单明了
c++设计模式-创建型模式-建造者模式-qt工程源码,c++实现
JAVA-设计模式-创建型模式-建造者模式
java设计模式------------------------------------建造者模式
讲故事,学(Java)设计模式—建造者模式Java开发Java经验技巧共5页.pdf.zip
cpp代码-设计模式-建造者模式
设计模式实验报告-建造者,有代码实例和运行结果
设计模式之---建造模式 1,建造模式属于对象的创建模式,是将一个产品的内部表象和产品的生产分割出来 2.使用原因:为了将构建复杂对象的过程和它的不见解耦; 3 使用情况:建造模式利用一个导演着对象和一个具体...
这个http://blog.csdn.net/dawanganban/article/details/9990405博客中java设计模式的源代码。下载前请先看《设计模式——建造者模式》一文。
设计模式之建造者模式代码示例,
设计模式专题之(四)建造者模式---设计模式建造者模式示例代码(python--c++)
设计模式05-建造者、原型模式 设计模式06-适配器、桥接、组合模式 设计模式07-组合模式、装饰模式 设计模式09-外观模式、享元模式 设计模式10-代理模式、结构型模式大复习 设计模式11-行为模式-责任链、命令模式 ...