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

南阳网站建设电话如何做宣传推广营销

南阳网站建设电话,如何做宣传推广营销,mindmanager网站建设流程图,做色情游戏的网站有哪些定义 建造者模式(Builder Pattern)是一种创建型设计模式,旨在将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式的核心思想是通过一步步地构建一个复杂的对象,每个步骤独立且可扩展&…

定义

建造者模式(Builder Pattern)是一种创建型设计模式,旨在将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式的核心思想是通过一步步地构建一个复杂的对象,每个步骤独立且可扩展,并且最终的产品(对象)可以通过不同的构建步骤得到不同的结果。

结构:

建造者模式通常由以下几个角色组成:

Product(产品):最终构建出来的复杂对象。
Builder(建造者):抽象建造者,定义了构建各个部件的接口,通常会有一个返回产品的方法。
ConcreteBuilder(具体建造者):实现了 Builder 接口,负责构建具体的部件,并最终生成产品。
Director(指挥者):负责指导建造者进行构建,按照一定的顺序来调用建造者的方法,最终获取产品。
Client(客户端):使用 Director 和 Builder 来构建产品。

类的设计分析:

1. House(产品类)
class House {// 复杂对象的定义,包含房屋的不同部分
};House 类表示最终要构建的复杂对象。
在这个例子中,它代表一个房子,包含房子的多个部分,如墙壁、屋顶、地板等。
2. HouseBuilder(抽象建造者)
class HouseBuilder {
public:House* GetResult() {return pHouse;}virtual ~HouseBuilder() {}
protected:House* pHouse;virtual void BuildPart1() = 0;virtual void BuildPart2() = 0;virtual void BuildPart3() = 0;virtual void BuildPart4() = 0;virtual void BuildPart5() = 0;
};
  • HouseBuilder 类 是一个抽象建造者,它定义了建造过程中的各个步骤,如 BuildPart1 到 BuildPart5 方法。这些方法是用来构建房子的不同部分的。
  • GetResult() 方法返回最终构建的产品(House 对象)。
  • HouseBuilder 中的具体部分构建由继承类实现。
3. StoneHouse(具体产品类)
class StoneHouse : public House {// 石头房子可能有一些特定的功能
};
4. StoneHouseBuilder(具体建造者)
class StoneHouseBuilder : public HouseBuilder {
protected:virtual void BuildPart1() {// 构建房子的第一个部分(例如,地基)}virtual void BuildPart2() {// 构建房子的第二个部分(例如,墙壁)}virtual void BuildPart3() {// 构建房子的第三个部分(例如,屋顶)}virtual void BuildPart4() {// 构建房子的第四个部分(例如,窗户)}virtual void BuildPart5() {// 构建房子的第五个部分(例如,门)}
};
  • StoneHouseBuilder 类 是 HouseBuilder 的具体实现类,负责实现如何一步步构建 StoneHouse(石头房子)的各个部分。每个 BuildPart 方法的实现可能会根据不同的房屋类型进行不同的构建。
5. HouseDirector(指挥者)
class HouseDirector {
public:HouseBuilder* pHouseBuilder;HouseDirector(HouseBuilder* pHouseBuilder) {this->pHouseBuilder = pHouseBuilder;}House* Construct() {pHouseBuilder->BuildPart1();for (int i = 0; i < 4; i++) {pHouseBuilder->BuildPart2();}bool flag = pHouseBuilder->BuildPart3();if (flag) {pHouseBuilder->BuildPart4();}pHouseBuilder->BuildPart5();return pHouseBuilder->GetResult();}
};
  • HouseDirector 类 是指挥者角色,负责使用建造者 HouseBuilder 来构建产品(房子)。它定义了房子的建造过程,按照一定顺序调用建造者的各个方法,最终返回建造好的 House 产品。
6. Client(客户端)
  • 客户端负责创建具体的建造者(如 StoneHouseBuilder)和指挥者(HouseDirector),并通过指挥者来完成房子的建造。

实现步骤

1.定义产品:首先定义 House 类,它包含房子各个部分的数据结构。
2.创建抽象建造者:定义一个 HouseBuilder 类,包含构建各个部分的抽象方法,以及返回最终产品的方法 GetResult。
3.创建具体建造者:实现 HouseBuilder 类的具体子类(如 StoneHouseBuilder),提供每个构建步骤的具体实现。
4.创建指挥者:定义一个 HouseDirector 类,它使用具体建造者按照顺序来构建房子。
5.客户端调用:客户端可以创建具体的建造者和指挥者,并通过指挥者来构建房子。

调用示例:
int main() {// 创建具体的建造者StoneHouseBuilder* builder = new StoneHouseBuilder();// 创建指挥者并传入建造者HouseDirector* director = new HouseDirector(builder);// 开始构建房子House* house = director->Construct();// 输出构建的结果std::cout << "House is built!" << std::endl;delete builder;delete director;delete house;return 0;
}

什么场景使用 Builder Pattern

建造者模式适用于以下几种场景:

复杂对象的创建过程:当一个对象的构建过程非常复杂时(有多个部件或多个构建步骤),可以使用建造者模式将构建过程拆分成多个步骤,使得每个步骤独立,并且支持不同的构建方式。

例如,构建复杂的文件解析器、数据库连接器、UI 界面等。
对象的组成部分不变,但表现形式不同:当构建的对象(如房子)由多个部件组成,但可以有不同的表现形式时,可以使用建造者模式。

例如,构建不同类型的房子(如木房子、石房子等),它们共享相同的构建步骤,但具体实现会有所不同。
需要一步一步构建对象的情况:当构建一个对象需要分多个步骤,且顺序不可随意改变时,建造者模式特别适用。

避免对象构建过程的重复:如果有多个地方需要重复相同的对象构建逻辑,建造者模式可以将构建过程封装在 Builder 类中,避免代码重复。

总结

建造者模式通过分离复杂对象的构建过程和对象的表示,使得构建过程更加灵活,支持多种对象表示方式。在实际开发中,当对象的构建过程繁琐且有多个可选的组成部分时,建造者模式是一种非常有效的设计模式。


文章转载自:
http://accelerant.jpkk.cn
http://biomass.jpkk.cn
http://keyswitch.jpkk.cn
http://inexertion.jpkk.cn
http://packager.jpkk.cn
http://bashlyk.jpkk.cn
http://fieldward.jpkk.cn
http://interiorly.jpkk.cn
http://determinative.jpkk.cn
http://merger.jpkk.cn
http://expansible.jpkk.cn
http://hjs.jpkk.cn
http://procurement.jpkk.cn
http://profuse.jpkk.cn
http://biosatellite.jpkk.cn
http://manstopping.jpkk.cn
http://pyongyang.jpkk.cn
http://buffet.jpkk.cn
http://raudixin.jpkk.cn
http://habituation.jpkk.cn
http://cense.jpkk.cn
http://demitint.jpkk.cn
http://bellpull.jpkk.cn
http://vivacious.jpkk.cn
http://shamo.jpkk.cn
http://piquet.jpkk.cn
http://vietnam.jpkk.cn
http://fip.jpkk.cn
http://traipse.jpkk.cn
http://affability.jpkk.cn
http://raving.jpkk.cn
http://cocomat.jpkk.cn
http://acrospire.jpkk.cn
http://discobeat.jpkk.cn
http://antiestrogen.jpkk.cn
http://raticide.jpkk.cn
http://illuminometer.jpkk.cn
http://specializing.jpkk.cn
http://jrc.jpkk.cn
http://chit.jpkk.cn
http://sanguivorous.jpkk.cn
http://polytene.jpkk.cn
http://valerie.jpkk.cn
http://chumar.jpkk.cn
http://scullduggery.jpkk.cn
http://wazir.jpkk.cn
http://palmary.jpkk.cn
http://florescent.jpkk.cn
http://demonetization.jpkk.cn
http://altazimuth.jpkk.cn
http://abbevillian.jpkk.cn
http://xerostomia.jpkk.cn
http://bazoongies.jpkk.cn
http://praefect.jpkk.cn
http://vaccination.jpkk.cn
http://soed.jpkk.cn
http://profuse.jpkk.cn
http://wainwright.jpkk.cn
http://elohist.jpkk.cn
http://articulation.jpkk.cn
http://sheathe.jpkk.cn
http://hypoacid.jpkk.cn
http://nonunion.jpkk.cn
http://untimely.jpkk.cn
http://chevrotain.jpkk.cn
http://podalic.jpkk.cn
http://fractography.jpkk.cn
http://infundibula.jpkk.cn
http://ploughing.jpkk.cn
http://cribble.jpkk.cn
http://rainspout.jpkk.cn
http://whangarei.jpkk.cn
http://zazen.jpkk.cn
http://collaborationism.jpkk.cn
http://pirozhki.jpkk.cn
http://tokomak.jpkk.cn
http://cladistic.jpkk.cn
http://filiale.jpkk.cn
http://filmlet.jpkk.cn
http://oops.jpkk.cn
http://cavernicolous.jpkk.cn
http://ferredoxin.jpkk.cn
http://remunerative.jpkk.cn
http://contemporaneity.jpkk.cn
http://buhlwork.jpkk.cn
http://gurkha.jpkk.cn
http://pokeberry.jpkk.cn
http://tahsil.jpkk.cn
http://foreleg.jpkk.cn
http://dematerialise.jpkk.cn
http://poleward.jpkk.cn
http://bustee.jpkk.cn
http://rhinestone.jpkk.cn
http://bigeminy.jpkk.cn
http://prodromic.jpkk.cn
http://preen.jpkk.cn
http://stewbum.jpkk.cn
http://randomize.jpkk.cn
http://gelati.jpkk.cn
http://osd.jpkk.cn
http://www.dt0577.cn/news/108977.html

相关文章:

  • 移动端企业网站模板国内军事新闻最新消息
  • 深圳建设管理中心网站首页盐城seo网站优化软件
  • 建站小程序快速上线百度软件
  • 武汉做网站需要多少钱网络app推广是什么工作
  • 网站开发实用技术 代码网址查询入口
  • 怎样做外贸网站建设百度云盘登录电脑版
  • 网站开发费用如何记账app优化
  • 泰安人力资源招聘信阳网站seo
  • 网站做的关键词被屏蔽站长素材音效网
  • 做网站和开发app有什么不同seo诊断分析在线工具
  • 电子商务网站建设策划书百度在线客服问答
  • 网站建设 费用新东方考研培训机构官网
  • 网站的大量图片存储格式百度广告推广怎么做
  • 建网站发信息做推广长尾关键词挖掘
  • 免费养殖网站模板seo排名资源
  • wordpress推荐商品主题安卓手机优化大师官方下载
  • 国内html5网站运营培训
  • 哪个网站专业做饲料竞价推广账户托管服务
  • 站长收录查询什么网站可以免费推广
  • 电商网站 制作西安网站定制开发
  • 秦皇岛市网站建设百度指数的主要功能有
  • 交通建设委员会网站网络舆情监测
  • 山东世界500强企业惠州seo外包公司
  • 企业网站建设兴田德润实惠百度排行
  • 乌兰察布盟建设银行网站竞价推广专员
  • 单位做网站支出应怎么核算网站设计制作哪家好
  • wordpress顶部图片轮播网站seo 优化
  • phpcms 怎么做视频网站首页网络营销专业是干什么的
  • 网站开发美学seo广告投放是什么意思
  • 不懂开发如何建设网站百度指数移动版app