当前位置: 首页> 娱乐> 八卦 > 所有手机浏览器大全_企业网站建设的基本原则有哪些?_seo网站建设_深圳网络营销全网推广

所有手机浏览器大全_企业网站建设的基本原则有哪些?_seo网站建设_深圳网络营销全网推广

时间:2025/7/12 6:13:06来源:https://blog.csdn.net/qq_50801874/article/details/142768690 浏览次数:0次
所有手机浏览器大全_企业网站建设的基本原则有哪些?_seo网站建设_深圳网络营销全网推广

基本概念

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。建造者模式一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。

类图

建造者模式主要包含4个角色:

抽象建造者(Builder):要构建的目标对象所需要的“零部件”,大多是接口。

具体建造者(ConcreteBuilder):Builder的实现类,提供创建方法以及产品实例。

产品类(Product):要构建的对象,内部包含很多其他的“零部件对象”。

指挥者类(Director):负责调用Builder的方法构建对象,返回实例,对调用者屏蔽了具体的构建过程,构建者一般只与指挥者类打交道。

代码实现

/*** 产品类*/
public class Car {private String window;private String tyre;private String seat;private boolean ai;public boolean getAi() {return ai;}public void setAi(boolean ai) {this.ai = ai;}public String getWindow() {return window;}public void setWindow(String window) {this.window = window;}public String getTyre() {return tyre;}public void setTyre(String tyre) {this.tyre = tyre;}public String getSeat() {return seat;}public void setSeat(String seat) {this.seat = seat;}@Overridepublic String toString() {String rs = "这款汽车有:" + this.getSeat() + "、" + this.getTyre()  + "、" + this.getWindow();if(this.getAi()){rs += "、自动驾驶";}return rs;}
}
/*** 抽象建造者*/
public interface ICarBuilder {public ICarBuilder setWindows(String window);public ICarBuilder setSeat(String seat);public ICarBuilder setTyre(String tyre);public ICarBuilder setAI(boolean ai);public Car createCar();
}
/*** 具体建造者*/
public class CarBuilder implements ICarBuilder{private Car car = new Car();@Overridepublic ICarBuilder setWindows(String window) {this.car.setWindow(window);System.out.println("给汽车安装[" + window + "]");return this;}@Overridepublic ICarBuilder setSeat(String seat) {this.car.setSeat(seat);System.out.println("给汽车安装[" + seat + "]");return this;}@Overridepublic ICarBuilder setTyre(String tyre) {this.car.setTyre(tyre);System.out.println("给汽车安装[" + tyre + "]");return this;}@Overridepublic ICarBuilder setAI(boolean ai) {this.car.setAi(ai);if (ai){System.out.println("给汽车安装[自动驾驶]");}return this;}@Overridepublic Car createCar() {return this.car;}}
/*** 指挥者*/
public class CarDirector {public Car createCar(ICarBuilder carBuilder){carBuilder.setSeat("加热座椅").setTyre("耐磨轮胎").setWindows("普通窗户");Car car = carBuilder.createCar();return car;}public Car createAICar(ICarBuilder carBuilder){carBuilder.setSeat("加热座椅").setTyre("耐磨轮胎").setWindows("普通窗户").setAI(true);Car car = carBuilder.createCar();return car;}}
/** 测试 **/
public class Client {public static void main(String[] args) {CarDirector director = new CarDirector();Car car = director.createCar(new CarBuilder());System.out.println(car.toString());System.out.println("---------------------------------");Car aiCar = director.createAICar(new CarBuilder());System.out.println(aiCar);}
}

运行结果

给汽车安装[加热座椅]
给汽车安装[耐磨轮胎]
给汽车安装[普通窗户]
这款汽车有:加热座椅、耐磨轮胎、普通窗户
---------------------------------
给汽车安装[加热座椅]
给汽车安装[耐磨轮胎]
给汽车安装[普通窗户]
给汽车安装[自动驾驶]
这款汽车有:加热座椅、耐磨轮胎、普通窗户、自动驾驶

关键字:所有手机浏览器大全_企业网站建设的基本原则有哪些?_seo网站建设_深圳网络营销全网推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: