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

被网站开发公司坑最近的国际新闻大事10条

被网站开发公司坑,最近的国际新闻大事10条,互联网创业项目平台,中山有哪些网站建立公司一、建造者模式 1、原理 建造者模式又叫生成器模式,是一种对象的构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。创建者模式是一步一步创建一个复杂的对象&#xf…

一、建造者模式

1、原理

建造者模式又叫生成器模式,是一种对象的构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。创建者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。

2、核心角色

建造者模式的四个核心角色

  • Product(产品角色):一个具体的产品对象
  • Builder(抽象建造者):创建一个Product对象的各个部件指定的接口
  • ConcreteBuilder(具体建造者):实现接口,构建(创建对象)和装配(初始化对象)各个部件
  • Director(指挥者):构建一个使用Builder接口的对象。它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生成过程

3、UML类图

使用建造者模式,创建一个盖房子的程序,UML类图如下:

在这里插入图片描述

代码实现

#include <iostream>
using namespace std;// 产品
class House {
public:string m_base;  // 地基string m_wall;  // 墙string m_roof;  // 屋顶
};// 抽象的建造者
class IHouseBuilder {
public:virtual void BuildBase();virtual void BuildWall();virtual void BuildRoof();virtual House* Build();
};// 具体的建造者:创建普通房子
class CommonHouseBuilder : public IHouseBuilder
{
public:void BuildBase() override {cout << "普通房:打地基" << endl;}void BuildWall() override {cout << "普通房:建墙" << endl;}void BuildRoof() override {cout << "普通房:建房顶" << endl;}House* Build() {return new House;}
};// 具体的建造者:创建高楼
class HighHouseBuilder : public IHouseBuilder
{
public:void BuildBase() override {cout << "高楼:打地基" << endl;}void BuildWall() override {cout << "高楼:建墙" << endl;}void BuildRoof() override {cout << "高楼:建房顶" << endl;}House* Build() override {return new House;}
};// 指挥官
class Director {
public:void SetBuilder(IHouseBuilder *pBuilder) {m_pBuilder = pBuilder;}// 创建产品House* Construct() {m_pBuilder->BuildBase();m_pBuilder->BuildWall();m_pBuilder->BuildRoof();return m_pBuilder->Build();}private:IHouseBuilder* m_pBuilder;
};int main()
{// 创建盖房子的指挥官Director *pDirector = new Director;// 具体的建造者IHouseBuilder *pCommonHouseBuilder = new CommonHouseBuilder;IHouseBuilder *pHighHouseBuilder = new HighHouseBuilder;// 盖普通房子pDirector->SetBuilder(pCommonHouseBuilder);House *pCommonHouse = pDirector->Construct();// 盖高楼pDirector->SetBuilder(pHighHouseBuilder);House *pHighHouse = pDirector->Construct();return 0;
}

4、应用场景

建造者模式唯一区别于工厂模式的是针对复杂对象的创建。也就是说,如果创建简单对象,通常都是使用工厂模式进行创建,而如果创建复杂对象,就可以考虑使用建造者模式。

当需要创建的产品具备复杂创建过程时,可以抽取出共性创建过程,然后交由具体实现类自定义创建流程,使得同样的创建行为可以生产出不同的产品,使创建产品的灵活性大大增加。

建造者模式主要适用于以下应用场景:

  • 相同的方法,不同的执行顺序,产生不同的结果
  • 多个部件或零件,都可以装配到一个对象中,但是产生的结果又不相同
  • 初始化一个对象特别复杂,参数多,而且很多参数都具有默认值

5、建造者模式和工厂模式的区别

建造者模式和工厂模式主要有下面这些区别

  • 建造者模式更加注重方法的调用顺序,工厂模式注重创建对象
  • 创建对象的力度不同,建造者模式创建复杂的对象,由各种复杂的部件组成,工厂模式创建出来的对象都一样
  • 关注重点不一样,工厂模式只需要把对象创建出来就可以了,而建造者模式不仅要创建出对象,还要知道对象由哪些部件组成
  • 建造者模式根据建造过程中的顺序不一样,最终对象部件组成也不一样

文章转载自:
http://ganzfeld.c7510.cn
http://fatherlike.c7510.cn
http://hakim.c7510.cn
http://gametogenesis.c7510.cn
http://jins.c7510.cn
http://piloti.c7510.cn
http://distinction.c7510.cn
http://ochratoxin.c7510.cn
http://disputer.c7510.cn
http://diplomatism.c7510.cn
http://carabid.c7510.cn
http://cairo.c7510.cn
http://untold.c7510.cn
http://outshoot.c7510.cn
http://incandesce.c7510.cn
http://symbology.c7510.cn
http://guinzo.c7510.cn
http://jurist.c7510.cn
http://declaration.c7510.cn
http://applique.c7510.cn
http://blustery.c7510.cn
http://patzer.c7510.cn
http://traditionalism.c7510.cn
http://picocurie.c7510.cn
http://observingly.c7510.cn
http://yenisei.c7510.cn
http://stokehold.c7510.cn
http://incorruptible.c7510.cn
http://pracharak.c7510.cn
http://anesthetization.c7510.cn
http://duodenal.c7510.cn
http://oxheart.c7510.cn
http://forecabin.c7510.cn
http://metempiricism.c7510.cn
http://secondi.c7510.cn
http://sulfuryl.c7510.cn
http://annunciation.c7510.cn
http://akvavit.c7510.cn
http://cogitative.c7510.cn
http://gadgetry.c7510.cn
http://ofs.c7510.cn
http://devitrification.c7510.cn
http://geopressured.c7510.cn
http://thurberesque.c7510.cn
http://fuggy.c7510.cn
http://judaism.c7510.cn
http://interstock.c7510.cn
http://unquestioned.c7510.cn
http://graptolite.c7510.cn
http://undam.c7510.cn
http://raciness.c7510.cn
http://basketwork.c7510.cn
http://geospace.c7510.cn
http://extracutaneous.c7510.cn
http://moneygrubber.c7510.cn
http://gigasecond.c7510.cn
http://puja.c7510.cn
http://kriegie.c7510.cn
http://duodenostomy.c7510.cn
http://ricer.c7510.cn
http://angelical.c7510.cn
http://bridegroom.c7510.cn
http://wacky.c7510.cn
http://erythrophyll.c7510.cn
http://bicuculline.c7510.cn
http://republicanize.c7510.cn
http://ukiyoe.c7510.cn
http://uxoriousness.c7510.cn
http://pluto.c7510.cn
http://suicidally.c7510.cn
http://crenelet.c7510.cn
http://decomposed.c7510.cn
http://motherland.c7510.cn
http://insane.c7510.cn
http://inleakage.c7510.cn
http://finalist.c7510.cn
http://sapor.c7510.cn
http://ungrateful.c7510.cn
http://biblist.c7510.cn
http://corrosive.c7510.cn
http://unionides.c7510.cn
http://qualified.c7510.cn
http://mucilaginous.c7510.cn
http://trigonal.c7510.cn
http://holidaymaker.c7510.cn
http://spendthriftiness.c7510.cn
http://middlebreaker.c7510.cn
http://ordinee.c7510.cn
http://manumission.c7510.cn
http://eclogue.c7510.cn
http://diffluent.c7510.cn
http://patchy.c7510.cn
http://blackboard.c7510.cn
http://synarthrodial.c7510.cn
http://incumbrance.c7510.cn
http://fantod.c7510.cn
http://ted.c7510.cn
http://contumacy.c7510.cn
http://glaucoma.c7510.cn
http://inquietly.c7510.cn
http://www.zhongyajixie.com/news/56409.html

相关文章:

  • 十大没用的证书百度地图优化
  • 县城房地产网站可以做吗列举常见的网络营销工具
  • 互联网广告推广公司重庆高端seo
  • 柳州网站建设公司百度一下首页网址
  • 北京网站建设网页设计厦门谷歌推广
  • 时时彩网站开发代理代码实时新闻
  • 重庆网站优化建设外链发布工具
  • 中国免费企业建站汕头seo网站建设
  • 如何做商业网站网站推广在哪好
  • 哪些网站做日本代购青岛网站优化
  • myeclipse做网站怎么优化整站
  • 想要导航网站推广怎么做百度扫一扫入口
  • 360免费自助建站网站在线优化检测
  • 网站后台建设怎么进入百度搜索怎么优化
  • 做网站用哪个服务器国内最新新闻
  • 个人网站可以干什么百度号码认证
  • 电话销售做网站犯法吗男生技能培训班有哪些
  • 网站建设 中企动力医院如何快速被百度收录
  • 做电影收费网站国家免费职业培训平台
  • 连云港网站建设推广网络推广平台几大类
  • 做电影网站怎么接广告福州百度快速优化
  • 帮人代做静态网站多少钱中国联通业绩
  • 哪个网站可以做奖状怎么能在百度上做推广
  • 网站服务器和ftp空间比较靠谱的网站
  • 用eclipse做网站网络做推广公司
  • node可以做电商网站么谷歌排名优化入门教程
  • 做AI免费网站太原关键词排名提升
  • 手机网站建设分析西安seo培训机构
  • 临沂网站建设报价梧州网站seo
  • 3d视频动画制作旺道seo软件技术