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

网站制作结构做旅游攻略的网站代码

网站制作结构,做旅游攻略的网站代码,公司网站后台怎么上传图片,昆明营销网站建设定义 简单工厂模式是一种创建型设计模式,它通过一个工厂类来创建对象,而不是通过客户端直接实例化对象。 结构 工厂类(Factory):负责创建对象的实例。工厂类通常包含一个方法,根据输入参数的不同创建并返…

定义

简单工厂模式是一种创建型设计模式,它通过一个工厂类来创建对象,而不是通过客户端直接实例化对象。

结构

在这里插入图片描述
工厂类(Factory):负责创建对象的实例。工厂类通常包含一个方法,根据输入参数的不同创建并返回不同的对象
产品类(Product):工厂类创建的对象接口或抽象类,所有具体产品类需要实现或继承这个接口或抽象类。
具体产品类(ConcreteProduct):实现了产品接口的具体类。

应用场景

  1. 多种产品对象的创建:当系统需要创建多种类型的对象(不宜过多),而且这些对象有着相似的结构或接口时,可以使用简单工厂模式来集中管理对象的创建逻辑。这有助于提高代码的可维护性和扩展性。例如,不同类型的图形对象、不同类型的报表生成器等。
  2. 避免直接实例化复杂对象:当对象的创建过程较为复杂,涉及多种初始化步骤时,可以使用简单工厂模式,将这些初始化步骤封装在工厂类中,简化客户端代码。例如,不同类型的数据库连接、复杂的对象初始化流程等。

优缺点

优点:

  1. 简化客户端代码:客户端代码不需要了解具体产品类的创建细节,只需调用工厂类的创建方法即可获得所需的对象。这减少了客户端代码的复杂性,使其更容易维护和理解。
  2. 集中管理对象的创建:对象的创建逻辑集中在工厂类中,便于统一管理和控制。这有助于在一个地方进行修改和调整,从而避免在多个地方重复修改代码,提高了代码的可维护性。
  3. 便于扩展:当需要增加新产品类时,只需在工厂类中添加相应的创建逻辑,客户端代码无需修改。这使得系统在一定程度上具有较好的扩展性。

缺点:

  1. 违背开闭原则:每当需要添加新的产品类型时,都必须修改工厂类以添加新的创建逻辑。这违反了开闭原则,增加了维护成本。
  2. 违背单一职责原则:工厂类不仅负责创建对象,还承担了对象的选择逻辑,可能会导致工厂类变得复杂,难以维护。
  3. 不可避免的条件判断:工厂类中通常会包含大量的条件判断语句(如if-else或switch-case),用于确定需要创建哪种类型的对象。这些条件判断语句会随着产品种类的增加而变得冗长且复杂。

代码示例

from abc import ABC, abstractmethodclass Shape(ABC):@abstractmethoddef draw(self):passclass Circle(Shape):def draw(self):return "Drawing a Circle"class Rectangle(Shape):def draw(self):return "Drawing a Rectangle"class ShapeFactory:@staticmethoddef create_shape(shape_type):if shape_type == "CIRCLE":return Circle()elif shape_type == "RECTANGLE":return Rectangle()else:raise ValueError("Unknown shape type")if __name__ == "__main__":# 使用工厂类创建对象shape = ShapeFactory.create_shape("CIRCLE")print(shape.draw())  # 输出: Drawing a Circleshape = ShapeFactory.create_shape("RECTANGLE")print(shape.draw())  # 输出: Drawing a Rectangle

参考

《设计模式的艺术》

http://www.yayakq.cn/news/483346/

相关文章:

  • 网站主题选择深圳专业建网站
  • 珠宝网站模版湖南省专业建设公司网站的机构
  • 网站开发好后版权归谁软件网站的服务器
  • 英文网站排名优化制作宣传图片的软件app
  • 上海网站快速排名wordpress文档内容页
  • 莎娜琳官方网站做水建设部网站资质
  • 大大福利站网站建设建设网站需要哪些费用
  • 用angularjs做的网站如何创建一个个人网站
  • 购物网站建设app开发t型网站域名和版面
  • 网站服务器是主机吗软件开发专业排名
  • 网站推广活动策划谷歌搜索引擎
  • 新网站如何做免费推广应用商店下载2022最新版
  • 在中国建的网站google可收录吗个人网站如何优化关键词
  • 垂直行业门户网站有哪些搜索排名广告营销怎么做
  • 连云港网站建设编程自学网
  • 网站栏目及内容网上订货发货网站建设
  • 湖州网站建设制作iis网站创建向导
  • 定制建网站网页是不是网站
  • 购物网站 功能鸣蝉小程序制作平台
  • 影视网站wordpress小规模企业所得税税率
  • 网站的建设多少钱wordpress 专题页面
  • 公司推广做哪个网站吗专业积分商城网站建设
  • 四川网站建设 湖南岚鸿静态网站上下篇代码
  • 做家政应该下载什么网站威海市文登区城乡建设局网站
  • 好的网站推广oa系统哪个品牌好
  • 顺德大良哪家做网站好廉政网站建设经验交流
  • 网站运营团队建设慈溪企业网站建设公司
  • 阿里云做企业网站wordpress调用视频播放器
  • 珠海网站建设平台山西省确诊病例最新情况
  • 杭州网站做的好公司免费做自己的网站有钱赚吗