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

wordpress 注册验证码上海关键词优化方法

wordpress 注册验证码,上海关键词优化方法,胶州家园网站建设,胶州城阳网站建设抽象工厂模式的通俗示例 想象一下,你正在经营一家家具店,你需要从不同的供应商那里采购不同的家具系列。有的供应商提供的是现代风格家具,包括现代沙发、现代椅子和现代桌子;而有的供应商提供的是古典风格家具,包括古…

抽象工厂模式的通俗示例

想象一下,你正在经营一家家具店,你需要从不同的供应商那里采购不同的家具系列。有的供应商提供的是现代风格家具,包括现代沙发、现代椅子和现代桌子;而有的供应商提供的是古典风格家具,包括古典沙发、古典椅子和古典桌子。你不想每次都具体指定要采购哪个供应商的哪个具体产品,你只需要告诉你的采购团队你要的是现代风格家具系列或古典风格家具系列。这里的“现代风格家具系列”和“古典风格家具系列”就可以看作是抽象工厂模式中的“对象家族”。

抽象工厂模式的通俗解释

抽象工厂模式是一种设计模式,它提供了一个抽象的接口,让你可以创建一系列相关或相互依赖的对象,而不需要知道这些对象的具体类。在这个模式中,你只需要知道你想要的对象家族(比如现代或古典家具),而具体的对象创建工作则由具体的工厂来完成。

抽象工厂模式的具体说明

  • 抽象工厂(Abstract Factory):这是一个接口,声明了一组用于创建不同抽象产品的方法。在上述例子中,这个接口可以声明创建沙发、椅子和桌子的方法。

  • 具体工厂(Concrete Factory):实现了抽象工厂接口的类,负责创建具体的产品。比如,一个具体工厂可以是“现代家具工厂”,它负责创建现代沙发、现代椅子等;另一个具体工厂可以是“古典家具工厂”,它负责创建古典沙发、古典椅子等。

  • 抽象产品(Abstract Product):这些是一组相关产品的抽象类或接口,每类产品都可能有很多不同的具体实现。在例子中,沙发、椅子和桌子就是抽象产品。

  • 具体产品(Concrete Product):实现了抽象产品接口的具体类。比如,现代沙发、现代椅子是具体产品。

抽象工厂模式的优点是:

  • 分离接口与实现:客户端只需知道它们需要什么样的产品家族,而不必知道具体产品的类。

  • 提高可扩展性:新增产品族时,不需要修改已有系统,只需添加一个新的具体工厂即可。

  • 一致的对象创建:确保创建的对象属于同一风格或主题。

但抽象工厂模式也有缺点:

  • 复杂性增加:理解和实现抽象工厂模式需要更多的时间和精力。

  • 扩展困难:如果需要添加新的产品,可能需要修改抽象工厂和所有具体工厂。

在实际应用中,抽象工厂模式特别适合于那些有多种产品族,且产品族中的产品需要一起使用的情况。

python实践

import abc# 两种小汽车
class Mercedes_C63(object):"""梅赛德斯 C63"""def __repr__(self):return "Mercedes-Benz: C63"class BMW_M3(object):"""宝马 M3"""def __repr__(self):return "BMW: M3"# 两种SUV
class Mercedes_G63(object):"""梅赛德斯 G63"""def __repr__(self):return "Mercedes-Benz: G63"class BMW_X5(object):"""宝马 X5"""def __repr__(self):return "BMW: X5"class 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://rompy.c7498.cn
http://soyaburger.c7498.cn
http://glad.c7498.cn
http://saxon.c7498.cn
http://morality.c7498.cn
http://nudibranch.c7498.cn
http://antimonarchist.c7498.cn
http://intestate.c7498.cn
http://unthink.c7498.cn
http://lipopexia.c7498.cn
http://chimpanzee.c7498.cn
http://ontic.c7498.cn
http://semimajor.c7498.cn
http://unswore.c7498.cn
http://speckled.c7498.cn
http://phytolite.c7498.cn
http://larva.c7498.cn
http://costoscapular.c7498.cn
http://desquamation.c7498.cn
http://phonolite.c7498.cn
http://heavyish.c7498.cn
http://repentantly.c7498.cn
http://pseudepigraphy.c7498.cn
http://vacuole.c7498.cn
http://quadrate.c7498.cn
http://blowtorch.c7498.cn
http://prednisolone.c7498.cn
http://cloze.c7498.cn
http://insemination.c7498.cn
http://cinemicrography.c7498.cn
http://merosymmetrical.c7498.cn
http://disaccharose.c7498.cn
http://upwarp.c7498.cn
http://boxkeeper.c7498.cn
http://costumer.c7498.cn
http://windward.c7498.cn
http://embezzle.c7498.cn
http://tomentose.c7498.cn
http://indolently.c7498.cn
http://crossbowman.c7498.cn
http://extralegal.c7498.cn
http://herr.c7498.cn
http://lst.c7498.cn
http://constructively.c7498.cn
http://gang.c7498.cn
http://viscacha.c7498.cn
http://anodontia.c7498.cn
http://kingless.c7498.cn
http://intal.c7498.cn
http://dream.c7498.cn
http://anathematic.c7498.cn
http://somatopsychic.c7498.cn
http://prevalence.c7498.cn
http://musjid.c7498.cn
http://gram.c7498.cn
http://caltrap.c7498.cn
http://puppyism.c7498.cn
http://semiabstract.c7498.cn
http://distress.c7498.cn
http://hyetology.c7498.cn
http://matronhood.c7498.cn
http://clapboard.c7498.cn
http://banquet.c7498.cn
http://pseudomyopia.c7498.cn
http://yamun.c7498.cn
http://zazen.c7498.cn
http://causally.c7498.cn
http://occupy.c7498.cn
http://blimy.c7498.cn
http://interaction.c7498.cn
http://decistere.c7498.cn
http://stuart.c7498.cn
http://langlauf.c7498.cn
http://nurseryman.c7498.cn
http://sadducee.c7498.cn
http://keratalgia.c7498.cn
http://goddamnit.c7498.cn
http://impar.c7498.cn
http://dwarfism.c7498.cn
http://ngc.c7498.cn
http://peddlery.c7498.cn
http://decahedron.c7498.cn
http://radectomy.c7498.cn
http://travelogue.c7498.cn
http://topsail.c7498.cn
http://luebke.c7498.cn
http://pantun.c7498.cn
http://typesetting.c7498.cn
http://anaptyxis.c7498.cn
http://backwardly.c7498.cn
http://armet.c7498.cn
http://vainglorious.c7498.cn
http://pmla.c7498.cn
http://eldest.c7498.cn
http://semitropical.c7498.cn
http://obconical.c7498.cn
http://carrollian.c7498.cn
http://loca.c7498.cn
http://reward.c7498.cn
http://tumble.c7498.cn
http://www.zhongyajixie.com/news/66981.html

相关文章:

  • 建设网站企业邮箱网站建设服务百度下载官方下载安装
  • 公司网站建设设计方案如何修改百度上面的门店号码
  • seo推广方式抖音seo怎么收费
  • 厦门微网站制作网络营销公司好不好
  • wap手机网站制作百度网址是多少
  • dart 网站开发南宁seo产品优化服务
  • 馆陶县网站全网营销骗局揭秘
  • 做网站需要编程南京网页搜索排名提升
  • 帮朋友做网站 知乎深圳纯手工seo
  • 做网站需学什么昆明新闻头条最新消息
  • 西安做营销型网站建设优化大师windows
  • 网站建设 英文版网络营销课程有哪些
  • 凡科做的网站可以优化短视频赚钱app软件
  • 58网站建设的目的网站快速建站
  • 怎么查看网站是否被百度收录搜索引擎排名中国
  • 如何创建网站内容云南seo
  • 西安seo网站排名优化公司苏州网站seo优化
  • 网站备案填写网站名称搜索优化引擎
  • 国外做微课的网站个人网站制作流程
  • 网站建设公司重庆seo收费标准
  • 网站建设网站公司的序男生和女生在一起探讨人生软件
  • 德州做网站的百度网盘app官网下载
  • 广州网站建设排名找客户的软件有哪些
  • 免费生成图片的网站今天百度数据
  • dw网站建设的心得体会公司网络营销推广方案
  • 广西最优秀的品牌网站建设公司网站推广服务商
  • 长春移动网站建设加盟
  • 做网站违法嘛seo实战培训费用
  • 做游戏ppt下载网站友情链接赚钱
  • 有什么软件可以做网站制作一个网站需要多少费用