全球今热点:设计模式-建造者模式(一)

时间:2023-05-04 14:22:51 来源: 腾讯云


(资料图片)

建造者模式(Builder Pattern)是一种创建型设计模式,它可以将对象的构建过程分离出来,使得同样的构建过程可以创建不同的表示。在该模式中,一个类负责对象的创建,并将对象的创建过程分解为多个步骤,每个步骤都由一个独立的建造者类来实现。最终通过指导这些步骤来组装出一个完整的对象。

在实际开发中,建造者模式常被用于构建复杂的对象,这些对象可能有多个属性需要初始化,而且这些属性之间可能有复杂的依赖关系。使用建造者模式可以避免在代码中直接实例化对象时需要传入大量的参数,并可以保证对象构建的一致性。

下面我们通过一个简单的例子来说明建造者模式的使用。

假设我们需要构建一个汽车对象,这个汽车对象包含以下属性:车牌号、车型、颜色、引擎、轮胎、座椅等。我们可以按照以下步骤来构建汽车对象:

创建汽车对象的抽象类Car,定义Car对象的基本属性和方法,如下所示:

javaCopy codepublic abstract class Car {    protected String licensePlateNumber;    protected String model;    protected String color;    protected String engine;    protected String tires;    protected String seats;    public abstract void setLicensePlateNumber(String licensePlateNumber);    public abstract void setModel(String model);    public abstract void setColor(String color);    public abstract void setEngine(String engine);    public abstract void setTires(String tires);    public abstract void setSeats(String seats);    public abstract String getDescription();}

创建汽车对象的具体实现类,如SedanCar、SUVCar、SportsCar等,实现Car对象的抽象方法,如下所示:

public class SedanCar extends Car {    public SedanCar() {        this.licensePlateNumber = "";        this.model = "";        this.color = "";        this.engine = "";        this.tires = "";        this.seats = "";    }    public void setLicensePlateNumber(String licensePlateNumber) {        this.licensePlateNumber = licensePlateNumber;    }    public void setModel(String model) {        this.model = model;    }    public void setColor(String color) {        this.color = color;    }    public void setEngine(String engine) {        this.engine = engine;    }    public void setTires(String tires) {        this.tires = tires;    }    public void setSeats(String seats) {        this.seats = seats;    }    public String getDescription() {        return "This is a sedan car with license plate number " + licensePlateNumber + ", model " + model + ", color " + color + ", engine " + engine + ", tires " + tires + ", seats " + seats + ".";    }}
public class SUVCar extends Car {    public SUVCar() {        this.licensePlateNumber = "";        this.model = "";        this.color = "";        this.engine = "";        this.tires = "";        this.seats = "";    }    public void setLicensePlateNumber(String licensePlateNumber) {        this.licensePlateNumber = licensePlateNumber;    }    public void setModel(String model) {        this.model = model;    }    public void setColor(String color) {        this.color = color;    }    public void setEngine(String engine) {        this.engine = engine;    }    public void setTires(String tires) {        this.tires = tires;    }    public void setSeats(String seats) {        this.seats = seats;    }    public String getDescription() {        return "This is an SUV car with license plate number " + licensePlateNumber + ", model " + model + ", color " + color + ", engine " + engine + ", tires " + tires + ", seats " + seats + ".";    }}

标签:

精彩推送

全球今热点:设计模式-建造者模式(一)

建造者模式(BuilderPattern)是一种创建型设计模式,它可以将对象的构建过程分离出来,使得同样的构建过程

来源:2023.05.04

天天讯息:中汽协:一季度排名前十国汽车商品累计进口金额154.5亿美元

智通财经APP获悉,5月4日,据中国汽车工业协会整理的海关总署数据显示,2023年一季度,汽车商品进口金额排

来源:2023.05.04

环球百事通!甘孜社保缴费比例是多少 2023年甘孜社保费用缴费明细表

甘孜社保缴费比例是多少2023年甘孜社保费用缴费明细表,下文就随社保君来了解一下甘孜的社保费用是多少吧。

来源:2023.05.04

江苏扬州市宝应县发生3.3级地震 当前快讯

据中国地震台网正式测定,5月4日11时46分在江苏扬州市宝应县发生3 3级地震,震源深度14公里,震中位于北纬33 34

来源:2023.05.04

头条焦点:张掖:民俗文化焕发新活力

张掖:民俗文化焕发新活力,张掖,民俗,甘州区,张掖市,文旅,村晚

来源:2023.05.04

工业互联网助推石嘴山高新区走进高质量发展新时代-天天热门

4月28日,工业互联网一体化进园区“百城千园行”走进石嘴山启动仪式在石嘴山高新区举行。

来源:2023.05.04

今年五一档票房居中国影史同期第三 环球观速讯

统计数据显示,截至北京时间5月3日24时,2023年“五一档”电影总票房超15亿元人民币,跻身中国影史“五...

来源:2023.05.04

世界滚动:吉华集团(603980):一季度净亏损1726.79万元

  吉华集团(603980)4月28日公布2023年第一季度报告,报告期实现营业收入4 11亿元,

来源:2023.05.04

ETF追踪:上周ETF净流入511.16亿元,资金加仓中证1000ETF

上周(4月24日-4月28日),A股三大指数表现分化,其中沪指周涨0 67%,深成指周跌0 98%,创业板指周跌0 7%。

来源:2023.05.04

新闻快讯

新闻快讯