当前位置: 首页 > news >正文

设计logo网站 生成器哈尔滨 房产网站建设

设计logo网站 生成器,哈尔滨 房产网站建设,门户网站用途,sem seo招聘引言 生成器是一种创建型设计模式#xff0c; 使你能够分步骤创建复杂对象。 与其他创建型模式不同#xff0c; 生成器不要求产品拥有通用接口。 这使得用相同的创建过程生成不同的产品成为可能。 复杂度#xff1a; 中等 流行度#xff1a; 流行 使用示例#xff1a…引言 生成器是一种创建型设计模式 使你能够分步骤创建复杂对象。 与其他创建型模式不同 生成器不要求产品拥有通用接口。 这使得用相同的创建过程生成不同的产品成为可能。 复杂度 中等 流行度 流行 使用示例 生成器模式是 Java 世界中的一个著名模式。 当你需要创建一个可能有许多配置选项的对象时 该模式会特别有用。 生成器在 Java 核心程序库中得到了广泛的应用 java.lang.StringBuilder#append()  非同步 java.lang.StringBuffer#append()  同步 java.nio.ByteBuffer#put() 还有 Char­Buffer、 Short­Buffer、 Int­Buffer、 Long­Buffer、 Float­Buffer 和 Double­Bufferjavax.swing.GroupLayout.Group#addComponent()java.lang.Appendable的所有实现 识别方法 生成器模式可以通过类来识别 它拥有一个构建方法和多个配置结果对象的方法。 生成器方法通常支持方法链 例如 someBuilder.​setValueA(1).​setValueB(2).​create()。 分步制造汽车 在本例中 生成器模式允许你分步骤地制造不同型号的汽车。 示例还展示了生成器如何使用相同的生产过程制造不同类型的产品 汽车手册。 主管控制着构造顺序。 它知道制造各种汽车型号需要调用的生产步骤。 它仅与汽车的通用接口进行交互。 这样就能将不同类型的生成器传递给主管了。 最终结果将从生成器对象中获得 因为主管不知道最终产品的类型。 只有生成器对象知道自己生成的产品是什么。 builders builders/Builder.java: 通用生成器接口 package refactoring_guru.builder.example.builders;import refactoring_guru.builder.example.cars.CarType; import refactoring_guru.builder.example.components.Engine; import refactoring_guru.builder.example.components.GPSNavigator; import refactoring_guru.builder.example.components.Transmission; import refactoring_guru.builder.example.components.TripComputer;/*** Builder interface defines all possible ways to configure a product.*/ public interface Builder {void setCarType(CarType type);void setSeats(int seats);void setEngine(Engine engine);void setTransmission(Transmission transmission);void setTripComputer(TripComputer tripComputer);void setGPSNavigator(GPSNavigator gpsNavigator); } builders/CarBuilder.java: 汽车生成器 /*** Concrete builders implement steps defined in the common interface.*/ public class CarBuilder implements Builder {private CarType type;private int seats;private Engine engine;private Transmission transmission;private TripComputer tripComputer;private GPSNavigator gpsNavigator;public void setCarType(CarType type) {this.type type;}Overridepublic void setSeats(int seats) {this.seats seats;}Overridepublic void setEngine(Engine engine) {this.engine engine;}Overridepublic void setTransmission(Transmission transmission) {this.transmission transmission;}Overridepublic void setTripComputer(TripComputer tripComputer) {this.tripComputer tripComputer;}Overridepublic void setGPSNavigator(GPSNavigator gpsNavigator) {this.gpsNavigator gpsNavigator;}public Car getResult() {return new Car(type, seats, engine, transmission, tripComputer, gpsNavigator);} } builders/CarManualBuilder.java: 汽车手册生成器 /*** Unlike other creational patterns, Builder can construct unrelated products,* which dont have the common interface.** In this case we build a user manual for a car, using the same steps as we* built a car. This allows to produce manuals for specific car models,* configured with different features.*/ public class CarManualBuilder implements Builder{private CarType type;private int seats;private Engine engine;private Transmission transmission;private TripComputer tripComputer;private GPSNavigator gpsNavigator;Overridepublic void setCarType(CarType type) {this.type type;}Overridepublic void setSeats(int seats) {this.seats seats;}Overridepublic void setEngine(Engine engine) {this.engine engine;}Overridepublic void setTransmission(Transmission transmission) {this.transmission transmission;}Overridepublic void setTripComputer(TripComputer tripComputer) {this.tripComputer tripComputer;}Overridepublic void setGPSNavigator(GPSNavigator gpsNavigator) {this.gpsNavigator gpsNavigator;}public Manual getResult() {return new Manual(type, seats, engine, transmission, tripComputer, gpsNavigator);} } cars cars/Car.java: 汽车产品 /*** Car is a product class.*/ public class Car {private final CarType carType;private final int seats;private final Engine engine;private final Transmission transmission;private final TripComputer tripComputer;private final GPSNavigator gpsNavigator;private double fuel 0;public Car(CarType carType, int seats, Engine engine, Transmission transmission,TripComputer tripComputer, GPSNavigator gpsNavigator) {this.carType carType;this.seats seats;this.engine engine;this.transmission transmission;this.tripComputer tripComputer;if (this.tripComputer ! null) {this.tripComputer.setCar(this);}this.gpsNavigator gpsNavigator;}public CarType getCarType() {return carType;}public double getFuel() {return fuel;}public void setFuel(double fuel) {this.fuel fuel;}public int getSeats() {return seats;}public Engine getEngine() {return engine;}public Transmission getTransmission() {return transmission;}public TripComputer getTripComputer() {return tripComputer;}public GPSNavigator getGpsNavigator() {return gpsNavigator;} } cars/Manual.java: 手册产品 /*** Car manual is another product. Note that it does not have the same ancestor* as a Car. They are not related.*/ public class Manual {private final CarType carType;private final int seats;private final Engine engine;private final Transmission transmission;private final TripComputer tripComputer;private final GPSNavigator gpsNavigator;public Manual(CarType carType, int seats, Engine engine, Transmission transmission,TripComputer tripComputer, GPSNavigator gpsNavigator) {this.carType carType;this.seats seats;this.engine engine;this.transmission transmission;this.tripComputer tripComputer;this.gpsNavigator gpsNavigator;}public String print() {String info ;info Type of car: carType \n;info Count of seats: seats \n;info Engine: volume - engine.getVolume() ; mileage - engine.getMileage() \n;info Transmission: transmission \n;if (this.tripComputer ! null) {info Trip Computer: Functional \n;} else {info Trip Computer: N/A \n;}if (this.gpsNavigator ! null) {info GPS Navigator: Functional \n;} else {info GPS Navigator: N/A \n;}return info;} } cars/CarType.java package refactoring_guru.builder.example.cars;public enum CarType {CITY_CAR, SPORTS_CAR, SUV } components components/Engine.java: 产品特征 1 /*** Just another feature of a car.*/ public class Engine {private final double volume;private double mileage;private boolean started;public Engine(double volume, double mileage) {this.volume volume;this.mileage mileage;}public void on() {started true;}public void off() {started false;}public boolean isStarted() {return started;}public void go(double mileage) {if (started) {this.mileage mileage;} else {System.err.println(Cannot go(), you must start engine first!);}}public double getVolume() {return volume;}public double getMileage() {return mileage;} } components/GPSNavigator.java: 产品特征 2 /*** Just another feature of a car.*/ public class GPSNavigator {private String route;public GPSNavigator() {this.route 221b, Baker Street, London to Scotland Yard, 8-10 Broadway, London;}public GPSNavigator(String manualRoute) {this.route manualRoute;}public String getRoute() {return route;} } components/Transmission.java: 产品特征 3 /*** Just another feature of a car.*/ public enum Transmission {SINGLE_SPEED, MANUAL, AUTOMATIC, SEMI_AUTOMATIC } components/TripComputer.java: 产品特征 4 /*** Just another feature of a car.*/ public class TripComputer {private Car car;public void setCar(Car car) {this.car car;}public void showFuelLevel() {System.out.println(Fuel level: car.getFuel());}public void showStatus() {if (this.car.getEngine().isStarted()) {System.out.println(Car is started);} else {System.out.println(Car isnt started);}} } director director/Director.java: 主管控制生成器 /*** Director defines the order of building steps. It works with a builder object* through common Builder interface. Therefore it may not know what product is* being built.*/ public class Director {public void constructSportsCar(Builder builder) {builder.setCarType(CarType.SPORTS_CAR);builder.setSeats(2);builder.setEngine(new Engine(3.0, 0));builder.setTransmission(Transmission.SEMI_AUTOMATIC);builder.setTripComputer(new TripComputer());builder.setGPSNavigator(new GPSNavigator());}public void constructCityCar(Builder builder) {builder.setCarType(CarType.CITY_CAR);builder.setSeats(2);builder.setEngine(new Engine(1.2, 0));builder.setTransmission(Transmission.AUTOMATIC);builder.setTripComputer(new TripComputer());builder.setGPSNavigator(new GPSNavigator());}public void constructSUV(Builder builder) {builder.setCarType(CarType.SUV);builder.setSeats(4);builder.setEngine(new Engine(2.5, 0));builder.setTransmission(Transmission.MANUAL);builder.setGPSNavigator(new GPSNavigator());} } Demo.java: 客户端代码 /*** Demo class. Everything comes together here.*/ public class Demo {public static void main(String[] args) {Director director new Director();// Director gets the concrete builder object from the client// (application code). Thats because application knows better which// builder to use to get a specific product.CarBuilder builder new CarBuilder();director.constructSportsCar(builder);// The final product is often retrieved from a builder object, since// Director is not aware and not dependent on concrete builders and// products.Car car builder.getResult();System.out.println(Car built:\n car.getCarType());CarManualBuilder manualBuilder new CarManualBuilder();// Director may know several building recipes.director.constructSportsCar(manualBuilder);Manual carManual manualBuilder.getResult();System.out.println(\nCar manual built:\n carManual.print());}} OutputDemo.txt: 执行结果 Car built: SPORTS_CARCar manual built: Type of car: SPORTS_CAR Count of seats: 2 Engine: volume - 3.0; mileage - 0.0 Transmission: SEMI_AUTOMATIC Trip Computer: Functional GPS Navigator: Functional
http://www.w-s-a.com/news/225473/

相关文章:

  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置
  • 哪个网站做图文素材多wordpress++优化
  • 建设网站就选用什么样的公司网站类型分类有哪些
  • 找平面设计师网站网站建设须知
  • 建设联结是不是正规网站wordpress 微博同步
  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价
  • 企业网站建设选题的依据及意义校园网站建设的论文
  • 网站版面设计方案水电维修在哪个网站上做推广好些
  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办