成都网站空间创新互联WordPress_posts
news/
2025/9/22 21:46:06/
文章来源:
成都网站空间创新互联,WordPress_posts,上海代理工商注册公司,网博士自助建站系统下载建造者模式#xff08;Builder Pattern#xff09;#xff0c;也被称为生成器模式#xff0c;是一种创建型设计模式#xff0c;主要用于解决复杂对象的构建问题。建造者模式的主要特点是#xff1a; 1.分离构建与表示#xff1a;将一个复杂对象的构建与它的表示分离Builder Pattern也被称为生成器模式是一种创建型设计模式主要用于解决复杂对象的构建问题。建造者模式的主要特点是 1.分离构建与表示将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。 2.封装性通过将对象的构建过程封装在一个独立的建造者类中提高了代码的封装性。 3.扩展性不同的具体建造者可以实现不同的构建步骤从而创建不同的产品变体提高了系统的扩展性。 4.控制细节风险客户端不必知道产品内部组成的细节便于控制细节风险。
建造者模式的主要构成要素包括 1.抽象建造者Builder定义了构建产品的步骤和方法但没有具体的实现。 2.具体建造者Concrete Builder实现了抽象建造者定义的方法完成了产品的构建过程每个具体建造者负责构建特定的产品变体。 3.指挥者Director负责控制建造的过程它通过将客户端与具体建造者分离确保产品的构建是按照一定顺序和规则进行的。 4.产品Product表示正在构建的复杂对象建造者模式的目标是构建这个产品。
示例定义了一个Computer产品类一个Builder接口以及一个具体的LaptopBuilder类实现Builder接口。Director类负责安排构建过程。客户端代码中我们创建了Director、Builder和Computer的实例并通过Director来构建一台电脑。最后打印出了电脑的配置信息。
// 产品类
public class Computer {private String cpu;private String sam;private String screen;public void setCpu(String cpu) {this.cpu cpu;}public void setSam(String sam) {this.sam sam;}public void setScreen(String screen) {this.screen screen;}Overridepublic String toString() {return Computer{ cpu cpu \ , sam sam \ , screen screen \ };}
}
// 建造者接口
public interface Builder {void buildCpu();void buildRam();void buildScreen();Computer getComputer();}
// 具体建造者
public class LaptopBuilder implements Builder {private Computer computernew Computer();Overridepublic void buildCpu() {computer.setCpu(i7处理器);}Overridepublic void buildRam() {computer.setSam(16GB内存);}Overridepublic void buildScreen() {computer.setScreen(32寸屏幕);}Overridepublic Computer getComputer() {return computer;}
}
//指挥者
public class Director {public void construct(Builder builder){builder.buildCpu();builder.buildRam();builder.buildScreen();}
}//测试
public class BuilderPatternExample {public static void main(String[] args) {//指挥者Director director new Director();//建造者Builder builder new LaptopBuilder();//指挥director.construct(builder);//建造Computer computer builder.getComputer();System.out.println(computer);}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910480.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!