ÉϰëÄêÈí¼þÉè¼ÆÊ¦ÏÂÎç¾íÊÔÌâ¼°´ð°¸½âÎö ÏÂÔØ±¾ÎÄ

¹¹½¨¹ý³Ì¿ÉÒÔ´´½¨²»Í¬µÄ±íʾ¡£Í¼ 5-1 ËùʾΪÆäÀàͼ¡£ ¡¾ C++ ´ú Âë ¡¿

#include #include

using namespace std; class Product { private:

string partA, partB; public:

Product(){ }

void setPartA(const string&s){ PartA=s;} void setPartB(const string&s){ PartB=s;} ¡ÎÆäÓà´úÂëÊ¡ÂÔ }; class

Builder{ public: (1);

virtual void buildPartB()=0;

(2);

};

class ConcreteBuilder1: public Builder{ private:

Product* product; public:

ConcreteBuilder1(){product=new Product(); } void buildPartA(){ £¨3£©(\ void buildPartB(){ £¨4£©(\ Product*getResult(){ return product;} ¡ÎÆäÓà´úÂëÊ¡ÂÔ };

class ConcreteBuilder2: public Builder{ /*´úÂëÊ¡ÂÔ*/ };

class Director { private:

Builder* builder; public:

Director(Builder*pBuilder){builder*pBuilder;} void construct(){ £¨5£©

¡ÎÆäÓà´úÂëÊ¡ÂÔ }

¡ÎÆäÓà´úÂëÊ¡ÂÔ };

int main(){

Director* director1=new Director(new ConcreteBuilder1()); directorl->construct(); delete director 1; return 0; }

ÊÔÌâÁù(¹² 15 ·Ö)

ÔĶÁÏÂÁÐ˵Ã÷ºÍ Java ´úÂë,½«Ó¦ÌîÈë(n)´¦µÄ×Ö¾äдÔÚ´ðÌâÖ½µÄ¶ÔÓ¦À¸ÄÚ¡£

¡¾ËµÃ÷¡¿

Éú³ÉÆ÷( Builder)ģʽµÄÒâͼÊǽ«Ò»¸ö¸´ÔÓ¶ÔÏóµÄ¹¹½¨ÓëËüµÄ±íʾ·ÖÀë,ʹµÃͬÑùµÄ¹¹½¨¹ý³Ì¿ÉÒÔ´´½¨²»Í¬µÄ±íʾ¡£Í¼ 6-1 ËùʾΪÆäÀàͼ¡£

¡¾Java ´úÂë¡¿

import java.util.*£» class Product {

private String part A; private String part B; public Product(){}

public void setPartA(String s){ partA=s;} public void setPartB(String s){ partB=s;} }

interface Builder{ public (1);

public void buildPartB(); public (2); }

class ConcreteBuilder1: implements Builder{

private Product product;

public ConcreteBuilder1(){product=new Product(); } public void buildPartA(){ £¨3£©(\ public void buildPartB(){ £¨4£©(\ public Product getResult(){ return product;} }

class ConcreteBuilder2 implements Builder{ ¡Î´úÂëÊ¡ÂÔ }

class Director {

private Builder builder;

public Director(Builder builder){this.builder=builder;} public void construct(){ £¨5£©

¡Î´úÂëÊ¡ÂÔ } }

class Test{

public static void main(String[]args){

Director director1=new Director(new ConcreteBuilder1()); directorl.construct(); } }