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

三门峡 网站建设市场调研报告ppt

三门峡 网站建设,市场调研报告ppt,做网站用什么网名好,北京网站推广优化公司一、说明 又称生成器,是一种创建型设计模式,使其能够分步骤创建复杂对象。允许使用相同的创建代码生成不同类型和形式的对象。 (一) 解决问题 对象的创建问题:当一个对象的构建过程复杂,且部分构建过程相互独立时,可…

一、说明

又称生成器,是一种创建型设计模式,使其能够分步骤创建复杂对象。允许使用相同的创建代码生成不同类型和形式的对象。

(一) 解决问题

  1. 对象的创建问题:当一个对象的构建过程复杂,且部分构建过程相互独立时,可以使用建造者模式。例如,一个软件系统中需要创建一个复杂的对象,这个对象由多个部分组成,而这些部分可以独立地进行变更,这时候就可以使用建造者模式。
  2. 解耦问题:建造者模式将一个复杂对象的构建函数进行分离,使得同样的构建过程可以创建不同的表示。用户只需要指定需要建造的类型,不需要知道建造的过程和细节。

(二) 使用场景

  • 结构复杂:当对象有非常复杂的内部结构,有许多属性时
  • 拆分大量参数的构造函数
  • 希望使用代码创建不同形式的产品,制造过程相似且仅有细节上的差异

二、结构

  1. 生成器 (Builder)接口声明在所有类型生成器中通用的产品构造步骤。
  2. 具体生成器 (Concrete Builders)提供构造过程的不同实现。具体生成器也可以构造不遵循通用接口的产品。
  3. 产品 (Products)是最终生成的对象。由不同生成器构造的产品无需属于同一类层次结构或接口。
  4. 主管 (Director)类定义调用构造步骤的顺序,这样你就可以创建和复用特定的产品配置。
  5. 客户端 (Client)必须将某个生成器对象与主管类关联。一般情况下,你只需通过主管类构造函数的参数进行一次性关联即可。此后主管类就能使用生成器对象完成后续所有的构造任务。但在客户端将生成器对象传递给主管类制造方法时还有另一种方式。在这种情况下,你在使用主管类生产产品时每次都可以使用不同的生成器。

三、伪代码

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__doc__ = """
建造者模式例:复用相同的对象构造代码来生成不同类型的产品——例如汽车 (Car)——及其相应的使用手册 (Manual)。
"""class Car:"""产品类"""def __init__(self):self.brand = Noneself.seats = Noneself.engine = Noneself.trip_computer = Noneself.gps = Nonedef __str__(self):return "汽车概况:\n     " + f"{self.__dict__}"class Manual:"""使用手册类"""def __init__(self):self.sections = []def add_section(self, feature, description):self.sections.append((feature, description))def __str__(self):return "使用手册:\n     " + "\n     ".join(f"{feature} - {description}" for feature, description in self.sections)class CarBuilder:"""生成器类"""def __init__(self):self._manual = Noneself._car = Noneself.reset()def reset(self):self._car = Car()self._manual = Manual()def set_brand(self, brand):self._car.brand = brandself._manual.add_section("Brand", f"这辆车的品牌是 {brand}")return selfdef set_seats(self, seats):self._car.seats = seatsself._manual.add_section("Seats", f"这辆车有 {seats} 个座位")return selfdef set_engine(self, engine):self._car.engine = engineself._manual.add_section("Engine", f"这辆车配备了一个 {engine} 引擎")return selfdef set_trip_computer(self, trip_computer):self._car.trip_computer = trip_computerif trip_computer:self._manual.add_section("Trip Computer", "这辆汽车装有行车电脑。")return selfdef set_gps(self, gps):self._car.gps = gpsif gps:self._manual.add_section("GPS", "这辆汽车装有全球定位系统(GPS)。")return selfdef get_car(self):return self._cardef get_manual(self):return self._manualclass Director:"""主管类主管只负责按照特定顺序执行生成步骤。由于客户端可以直接控制生成器,所以严格意义上来说,主管类并不是必需的。"""@staticmethoddef construct_sports_car1(builder):builder.reset()builder.set_brand("宝马").set_seats(4).set_engine("SportEngine").set_trip_computer(True).set_gps(True)@staticmethoddef construct_sports_car2(builder):builder.reset()builder.set_brand("奔驰").set_seats(6)def client_code():"""客户端代码"""director = Director()# 构建汽车和使用手册car_builder = CarBuilder()director.construct_sports_car1(car_builder)print(car_builder.get_car())print(car_builder.get_manual())print()director.construct_sports_car2(car_builder)print(car_builder.get_car())print(car_builder.get_manual())if __name__ == "__main__":"""汽车概况:{'brand': '宝马', 'seats': 4, 'engine': 'SportEngine', 'trip_computer': True, 'gps': True}使用手册:Brand - 这辆车的品牌是 宝马Seats - 这辆车有 4 个座位Engine - 这辆车配备了一个 SportEngine 引擎Trip Computer - 这辆汽车装有行车电脑。GPS - 这辆汽车装有全球定位系统(GPS)。汽车概况:{'brand': '奔驰', 'seats': 6, 'engine': None, 'trip_computer': None, 'gps': None}使用手册:Brand - 这辆车的品牌是 奔驰Seats - 这辆车有 6 个座位"""client_code()

四、优缺点

优点

  • 你可以分步创建对象,暂缓创建步骤或递归运行创建步骤。
  • 生成不同形式的产品时,你可以复用相同的制造代码。
  • 单一职责原则。你可以将复杂构造代码从产品的业务逻辑中分离出来。

缺点

  • 由于该模式需要新增多个类,因此代码整体复杂程度会有所增加。
http://www.hkea.cn/news/232699/

相关文章:

  • 做csgo直播网站上海知名网站制作公司
  • 深圳住建局官方网站seo网站关键词优化快速官网
  • 网站建设需要php吗企业的互联网推广
  • 苏中建设集团官方网站电商软文广告经典案例
  • 网站开发需要什么开发工具代做百度首页排名价格
  • 北京网站设计多少钱微信引流推广
  • 网站建设实施背景分析百度指数里的资讯指数是什么
  • 小程序定制开发深圳公司网站的优化seo
  • 构建一个网站域名查询平台
  • 蚌埠网站关键词优化推广下载
  • 看房地产的app在哪看aso安卓优化
  • 网站与域名的区别扬州整站seo
  • 哪些网站可以进行域名注册公司关键词seo
  • 如何申请一个网站 做视频百度小说搜索热度排行榜
  • 天津做网站选择津坤科技b重庆seo教程搜索引擎优化
  • 什么网站做热能表好百度一下电脑版首页网址
  • 点击图片直接进入网站怎么做如何使用免费b站推广网站
  • 手机网站建设软件怎么在百度上做广告推广
  • 南京做网站团队手机app免费制作平台
  • 17173游戏网搜索优化指的是什么
  • 公司做网站需要给百度交钱吗百度竞价推广方案
  • 网站建设的关键seo推广小分享
  • 写小说的小网站百度关键词排名优化
  • 制作网站的成本规划公司如何建立网站
  • html语言做网站石嘴山网站seo
  • 做最好的言情网站官网seo优化
  • 云南建设监理协会网站营销失败案例分析
  • 怎么样做淘宝优惠券网站搜索引擎营销的优缺点
  • wordpress动态订单seo社区
  • 网站域没到期不能续费吗google谷歌搜索