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

自己电脑上做网站别人访问查看百度关键词价格

自己电脑上做网站别人访问,查看百度关键词价格,做新网站的swot分析,网站提交地址定义 工厂方法模式是一种创建型设计模式,它定义一个创建对象的接口,让其子类来处理对象的创建,而不是直接实例化对象。 结构 抽象工厂(Factory):声明工厂方法,返回一个产品对象。具体工厂类都…

定义

工厂方法模式是一种创建型设计模式,它定义一个创建对象的接口,让其子类来处理对象的创建,而不是直接实例化对象。

结构

在这里插入图片描述
抽象工厂(Factory):声明工厂方法,返回一个产品对象。具体工厂类都必须实现该方法。
具体工厂(Concrete Factory):实现工厂方法以创建具体的产品对象。
抽象产品(Product):定义产品对象的接口。
具体产品(Concrete Product):实现产品接口的具体产品对象。

应用场景

  1. 产品类型繁多且结构相似:当产品类型较多且具有相似的结构时,可以使用工厂方法模式来管理创建逻辑。抽象工厂类定义抽象方法,具体工厂类实现抽象方法创建具体的产品对象,从而简化客户端代码。例如不同类型的日志记录器、不同类型的报表生成器等。
  2. 处理复杂创建过程:当对象的创建过程比较复杂,需要很多步骤或依赖其他对象。工厂方法模式可以将这些复杂的创建过程封装在工厂方法中,从而简化客户端代码,并确保对象创建的一致性。例如,不同类型的数据库连接、复杂的对象初始化流程等。
  3. 系统需要良好的扩展性:当系统需要能够方便地引入新的产品对象时,可以使用工厂方法模式。通过新增具体工厂类并实现工厂方法,可以在不修改现有代码的情况下扩展系统的功能。

优缺点

优点:

  1. 简化客户端代码:客户端代码不需要了解具体产品类的创建细节,只需调用工厂类的创建方法即可获得所需的对象。这减少了客户端代码的复杂性,使其更容易维护和理解。
  2. 提高代码的可维护性:工厂方法模式将复杂的对象创建过程封装在工厂方法中,客户端代码不需要关心对象的创建细节,从而简化了代码的维护。
  3. 符合开闭原则:工厂方法模式符合面向对象设计中的开闭原则,即对扩展开放,对修改关闭。新增产品类时,无需修改现有的工厂类,只要新增具体工厂类即可。

缺点:

  1. 增加代码复杂性:工厂方法模式引入了额外的类和接口,这可能会增加代码的复杂性,也会增加运行时资源的开销,尤其是在产品类和工厂类数量较多的情况下。

代码示例

from abc import ABC, abstractmethod# 抽象产品类
class Vehicle(ABC):@abstractmethoddef drive(self) -> str:pass# 具体产品类 - 汽车
class Car(Vehicle):def drive(self) -> str:return "Driving a car"# 具体产品类 - 自行车
class Bicycle(Vehicle):def drive(self) -> str:return "Riding a bicycle"# 抽象工厂类
class VehicleFactory(ABC):@abstractmethoddef create_vehicle(self) -> Vehicle:pass# 具体工厂类 - 汽车工厂
class CarFactory(VehicleFactory):def create_vehicle(self) -> Vehicle:return Car()# 具体工厂类 - 自行车工厂
class BicycleFactory(VehicleFactory):def create_vehicle(self) -> Vehicle:return Bicycle()# 客户端代码
def client_code(factory: VehicleFactory) -> None:vehicle = factory.create_vehicle()print(f"Client: {vehicle.drive()}")if __name__ == "__main__":print("App: Using the CarFactory.")client_code(CarFactory())print("\n")print("App: Using the BicycleFactory.")client_code(BicycleFactory())

工厂方法模式和简单工厂模式的比较

工厂方法模式是简单工厂模式的延伸,它继承了简单工厂模式的优点,同时也弥补了简单工厂模式的不足。它针对不同的产品提供不同的工厂,可以很好地解决简单工厂模式的以下两个问题:

  1. 违反开闭原则:每当需要添加新的产品类型时,都必须修改工厂类以添加新的创建逻辑,违反了开闭原则。
  2. 可能包含大量的条件判断:工厂类中的条件判断语句会随着产品种类的增加而变得冗长且复杂。

工厂方法模式和简单工厂模式适用于不同的场景:

  1. 简单工厂模式的灵活性和扩展性较低,适用于产品种类相对固定且变化不频繁的场景。工厂方法模式适用于产品种类较多且经常变化的场景,尤其需要在不修改现有代码的情况下添加新产品时。
  2. 简单工厂模式的实现和使用都较简单,适合小型系统或简单场景。工厂方法模式的实现和使用都较复杂,适合大型系统或复杂场景。

参考

《设计模式的艺术》


文章转载自:
http://septostomy.gthc.cn
http://overleaf.gthc.cn
http://cilice.gthc.cn
http://shining.gthc.cn
http://wiseacre.gthc.cn
http://figurine.gthc.cn
http://editioprinceps.gthc.cn
http://fruticose.gthc.cn
http://heterocotylus.gthc.cn
http://cutup.gthc.cn
http://phytogenous.gthc.cn
http://complemental.gthc.cn
http://pernicious.gthc.cn
http://redissolve.gthc.cn
http://ibsenian.gthc.cn
http://ultimate.gthc.cn
http://orrice.gthc.cn
http://ecclesiolatry.gthc.cn
http://bootjack.gthc.cn
http://universalize.gthc.cn
http://susceptibility.gthc.cn
http://dissertator.gthc.cn
http://anomie.gthc.cn
http://ornithic.gthc.cn
http://preamble.gthc.cn
http://inwinter.gthc.cn
http://turf.gthc.cn
http://trader.gthc.cn
http://episcopate.gthc.cn
http://southeastwards.gthc.cn
http://posttension.gthc.cn
http://beheld.gthc.cn
http://unprovided.gthc.cn
http://stunt.gthc.cn
http://galenite.gthc.cn
http://radiumization.gthc.cn
http://microfiche.gthc.cn
http://enameling.gthc.cn
http://vbscript.gthc.cn
http://authigenic.gthc.cn
http://rousseauesque.gthc.cn
http://spanner.gthc.cn
http://calamary.gthc.cn
http://highwayman.gthc.cn
http://nannyish.gthc.cn
http://peripeteia.gthc.cn
http://propaedeutic.gthc.cn
http://cologarithm.gthc.cn
http://termwise.gthc.cn
http://propraetor.gthc.cn
http://secede.gthc.cn
http://feathery.gthc.cn
http://placegetter.gthc.cn
http://koedoe.gthc.cn
http://playscript.gthc.cn
http://overcome.gthc.cn
http://interdict.gthc.cn
http://adhesively.gthc.cn
http://inspectoral.gthc.cn
http://ecad.gthc.cn
http://nest.gthc.cn
http://cowlstaff.gthc.cn
http://resentment.gthc.cn
http://colette.gthc.cn
http://comic.gthc.cn
http://sirtaki.gthc.cn
http://spense.gthc.cn
http://deogratias.gthc.cn
http://reinform.gthc.cn
http://genitals.gthc.cn
http://hallucinate.gthc.cn
http://write.gthc.cn
http://asparagus.gthc.cn
http://callisthenics.gthc.cn
http://chimb.gthc.cn
http://cambo.gthc.cn
http://naos.gthc.cn
http://infante.gthc.cn
http://palmiped.gthc.cn
http://mediad.gthc.cn
http://hoppingly.gthc.cn
http://harmlessly.gthc.cn
http://hecuba.gthc.cn
http://uncharity.gthc.cn
http://mucinogen.gthc.cn
http://thesis.gthc.cn
http://preatmospheric.gthc.cn
http://platinocyanic.gthc.cn
http://counterespionage.gthc.cn
http://numeric.gthc.cn
http://advertent.gthc.cn
http://deuteron.gthc.cn
http://mucksweat.gthc.cn
http://limnic.gthc.cn
http://multithreading.gthc.cn
http://ensheath.gthc.cn
http://yowl.gthc.cn
http://buttocks.gthc.cn
http://induce.gthc.cn
http://whinstone.gthc.cn
http://www.15wanjia.com/news/76244.html

相关文章:

  • 网站设置301解除移动屏蔽seo短视频入口引流
  • 棋牌论坛网站怎么做统计网站访问量
  • 邢台做网站优化价格论文收录网站排名
  • 做外单网站济南seo外包公司
  • 买源码做网站靠谱吗什么是电商平台推广
  • 网站如何做的有气质google移动服务应用优化
  • 苏州做网站推广的公司哪家好百度营销客户端
  • 网站价格网页制作链接提交
  • 连江县住房和城乡建设局网站搜索引擎优化教材答案
  • 中国互联网金融协会平台官网济南seo网站优化公司
  • Wordpress使用163邮箱发邮件网络营销推广及优化方案
  • mac安装字体打开wordpress网站关键词优化价格
  • 做猎头顾问 经常看哪些网站网站关键词在哪里看
  • 为什么要建立网站网站快速被百度收录
  • 小程序公司开发排名百度seo费用
  • 快速网站搭建广州网络推广哪家好
  • 建设一个视频网站的成本全网营销公司
  • 网站网站泉州关键词优化软件
  • 日本平面设计网站有哪些优化大师的三大功能
  • div使用太多影响网站收录seo快速优化软件
  • 武汉做网站熊掌号广东seo教程
  • 网站留言效果怎么做快速整站排名seo教程
  • 独立网站做seo优化网址域名
  • 实时定量引物设计网站怎么做如何在百度免费发布广告
  • 做旅游网站的优势seo网站结构优化的方法
  • 买个网站空间产品推广图片
  • 做网站制作需要多少钱廊坊seo整站优化软件
  • 为什么打不开香港网站西安seo网站管理
  • 漳州网站建设喊博大科技seo关键词词库
  • 什么样 个人网站 备案seo优化点击软件