- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
23种设计模式
?
?
23种设计模式(建造者模式)
(愿岁月清净)
1.建造者模式定义
讲一个复杂的对象的创建与他的表示分离,使得同样的构建过程可以创建不同的表示。
2.应用举例
工厂(建造者模式):负责制造汽车(组装过程和细节在工厂内)
汽车购买者(用户):你只需要说出需要的型号(对象的类型和内容),然后直接购买就可以使用了(不需要知道汽车是如何组装的,如何建造的)
3.栗子
4.具体代码实现
1.Product
packagecom.kuang.builder;
//产品,房子
publicclassProduct{
privateStringbuilderA;
privateStringbuilderB;
privateStringbuilderC;
privateStringbuilderD;
publicStringgetBuilderA(){
returnbuilderA;
}
publicvoidsetBuilderA(StringbuilderA){
this.builderA=builderA;
}
publicStringgetBuilderB(){
returnbuilderB;
}
publicvoidsetBuilderB(StringbuilderB){
this.builderB=builderB;
}
publicStringgetBuilderC(){
returnbuilderC;
}
publicvoidsetBuilderC(StringbuilderC){
this.builderC=builderC;
}
publicStringgetBuilderD(){
returnbuilderD;
}
publicvoidsetBuilderD(StringbuilderD){
this.builderD=builderD;
}
@Override
publicStringtoString(){
returnProduct{+
builderA=+builderA+\+
,builderB=+builderB+\+
,builderC=+builderC+\+
,builderD=+builderD+\+
};
}
}
2.Builder(抽象的建造者)
packagecom.kuang.builder;
//抽象的建造者:方法
publicabstractclassBuilder{
abstractvoidbuilderA();//地基
abstractvoidbuilderB();//钢筋工程
abstractvoidbuilderC();//铺电线
abstractvoidbuilderD();//粉刷
//完工:得到产品
abstractProductgetProduct();
}
3.Worker
packagecom.kuang.builder;
//具体的建造者:工人
publicclassWorkerextendsBuilder{
privateProductproduct;
publicWorker(){
product=newProduct();
}
@Override
voidbuilderA(){
product.setBuilderA(地基);
System.out.println(地基);
}
@Override
voidbuilderB(){
product.setBuilderB(钢筋工程);
System.out.println(钢筋工程);
}
@Override
voidbuilderC(){
produc
文档评论(0)