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

怎么制作网站步骤厦门企业官方网站建设

怎么制作网站步骤,厦门企业官方网站建设,精品网站建设费用 要上磐石网络,网站搜索功能设计抽象工厂模式的通俗示例 想象一下#xff0c;你正在经营一家家具店#xff0c;你需要从不同的供应商那里采购不同的家具系列。有的供应商提供的是现代风格家具#xff0c;包括现代沙发、现代椅子和现代桌子#xff1b;而有的供应商提供的是古典风格家具#xff0c;包括古…抽象工厂模式的通俗示例 想象一下你正在经营一家家具店你需要从不同的供应商那里采购不同的家具系列。有的供应商提供的是现代风格家具包括现代沙发、现代椅子和现代桌子而有的供应商提供的是古典风格家具包括古典沙发、古典椅子和古典桌子。你不想每次都具体指定要采购哪个供应商的哪个具体产品你只需要告诉你的采购团队你要的是现代风格家具系列或古典风格家具系列。这里的“现代风格家具系列”和“古典风格家具系列”就可以看作是抽象工厂模式中的“对象家族”。 抽象工厂模式的通俗解释 抽象工厂模式是一种设计模式它提供了一个抽象的接口让你可以创建一系列相关或相互依赖的对象而不需要知道这些对象的具体类。在这个模式中你只需要知道你想要的对象家族比如现代或古典家具而具体的对象创建工作则由具体的工厂来完成。 抽象工厂模式的具体说明 抽象工厂Abstract Factory这是一个接口声明了一组用于创建不同抽象产品的方法。在上述例子中这个接口可以声明创建沙发、椅子和桌子的方法。 具体工厂Concrete Factory实现了抽象工厂接口的类负责创建具体的产品。比如一个具体工厂可以是“现代家具工厂”它负责创建现代沙发、现代椅子等另一个具体工厂可以是“古典家具工厂”它负责创建古典沙发、古典椅子等。 抽象产品Abstract Product这些是一组相关产品的抽象类或接口每类产品都可能有很多不同的具体实现。在例子中沙发、椅子和桌子就是抽象产品。 具体产品Concrete Product实现了抽象产品接口的具体类。比如现代沙发、现代椅子是具体产品。 抽象工厂模式的优点是 分离接口与实现客户端只需知道它们需要什么样的产品家族而不必知道具体产品的类。 提高可扩展性新增产品族时不需要修改已有系统只需添加一个新的具体工厂即可。 一致的对象创建确保创建的对象属于同一风格或主题。 但抽象工厂模式也有缺点 复杂性增加理解和实现抽象工厂模式需要更多的时间和精力。 扩展困难如果需要添加新的产品可能需要修改抽象工厂和所有具体工厂。 在实际应用中抽象工厂模式特别适合于那些有多种产品族且产品族中的产品需要一起使用的情况。 python实践 import abc# 两种小汽车 class Mercedes_C63(object):梅赛德斯 C63def __repr__(self):return Mercedes-Benz: C63class BMW_M3(object):宝马 M3def __repr__(self):return BMW: M3# 两种SUV class Mercedes_G63(object):梅赛德斯 G63def __repr__(self):return Mercedes-Benz: G63class BMW_X5(object):宝马 X5def __repr__(self):return BMW: X5class AbstractFactory(object):抽象工厂类该类是一个抽象类定义了生产不同类型车辆产品的接口除了能生产小汽车外还可以生产SUV使用该模式可以将创建不同类型对象的逻辑进行封装便于扩展和替换具体实现# 标记该类为抽象类__metaclass__ abc.ABCMeta# 定义生产小汽车产品的抽象方法# 该方法没有具体实现需要由具体的子类根据实际需求实现abc.abstractmethoddef product_car(self):pass# 定义生产SUV产品的抽象方法# 同样该方法的具体实现由具体的子类完成abc.abstractmethoddef product_suv(self):passclass MercedesFactory(AbstractFactory):梅赛德斯工厂def product_car(self):return Mercedes_C63()def product_suv(self):return Mercedes_G63()class BMWFactory(AbstractFactory):宝马工厂def product_car(self):return BMW_M3()def product_suv(self):return BMW_X5()if __name__ __main__:c1 MercedesFactory().product_car()s1 MercedesFactory().product_suv()print(c1, s1)s2 BMWFactory().product_suv()c2 BMWFactory().product_car()print(c2, s2)
http://www.w-s-a.com/news/227838/

相关文章:

  • 建设合同施工合同示范文本汕头市网络优化推广平台
  • 网站关键词修改老王搜索引擎入口
  • 那个网站做搬家推广比较好建设部网站办事大厅栏目
  • 做企业销售分析的网站广州网站设计建设
  • 建站流程wordpress怎么开伪静态
  • 服务器不是自己的做违法网站videopro wordpress
  • 北京建网站的公司哪个比较好网站开通告知书
  • 网站负责人 主体负责人黑龙江 建设监理协会网站
  • 手机网站焦点图代码建设工程质量检测网站
  • 墙绘做网站推广有作用没html网页制作用什么软件
  • 企业做网站有用吗网站推广的常用方法有哪些?
  • 景安做网站教程互联网小程序开发
  • 桂林北站离阳朔多远贵州省建设厅住房和城乡建设官网二建考试
  • 浙江省建设厅 网站是多少wordpress淘宝客一键
  • 网站流量少怎么做5个不好的网站
  • 随州网站建设有限公司个人申请注册公司需要多少钱
  • 东莞做商城网站建设wordpress批量下载外链图片
  • 新网站建设运营年计划书仓山区建设局招标网站
  • 网站开发天津网站建设项目组织图
  • 网站开发认证考试石家庄高端网站开发
  • 网站建设第一步怎么弄站酷网页
  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站