大话设计模式_建造者模式

来源:互联网 发布:免费snmp网络管理软件 编辑:程序博客网 时间:2024/05/22 07:40

以绘制小人为例子。

package com.wzs.design;/** * 大话设计模式--page116 建造者模式 *  * @author Administrator *  */public class BuilderPattern {public static void main(String[] args) {PersonDirector personThinDirector = new PersonDirector(new PersonThinBuilder());// 瘦子personThinDirector.createPerson();System.out.println();PersonDirector personFatDirector = new PersonDirector(new PersonFatBuilder());// 胖子personFatDirector.createPerson();}}/* * 指挥者 */class PersonDirector {private PersonBuilder personBuilder;public PersonDirector(PersonBuilder personBuilder) {this.personBuilder = personBuilder;}// 绘制人public void createPerson() {personBuilder.buildHead();personBuilder.buildBody();personBuilder.buildArm();personBuilder.buildLeg();}}/* * 绘制人的抽象类 */abstract class PersonBuilder {public abstract void buildHead();public abstract void buildBody();public abstract void buildArm();public abstract void buildLeg();}/* * 瘦子 */class PersonThinBuilder extends PersonBuilder {@Overridepublic void buildArm() {System.out.println("瘦子的手.");}@Overridepublic void buildBody() {System.out.println("瘦子的身体.");}@Overridepublic void buildHead() {System.out.println("瘦子的头.");}@Overridepublic void buildLeg() {System.out.println("瘦子的腿.");}}/* * 胖子 */class PersonFatBuilder extends PersonBuilder {@Overridepublic void buildArm() {System.out.println("胖子的手.");}@Overridepublic void buildBody() {System.out.println("胖子的身体.");}@Overridepublic void buildHead() {System.out.println("胖子的头.");}@Overridepublic void buildLeg() {System.out.println("胖子的腿.");}}