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

公司网站怎么建站网站备案需要拍照

公司网站怎么建站,网站备案需要拍照,建德网站,企业logo设计免费every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 以下是 简单工厂模式、工厂方法模式 和 抽象工厂模式 的 Python 实现与对比,结合代码示例和实际应用场景说明: 1. 简单工厂模式&a…

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

以下是 简单工厂模式工厂方法模式抽象工厂模式 的 Python 实现与对比,结合代码示例和实际应用场景说明:


1. 简单工厂模式(Simple Factory)

核心思想:由一个工厂类根据传入的参数,动态决定创建哪一种产品类的实例。
适用场景:对象创建逻辑简单,且不需要频繁扩展新产品。

from abc import ABC, abstractmethod# 抽象产品
class Button(ABC):@abstractmethoddef render(self):pass# 具体产品
class WindowsButton(Button):def render(self):return "Windows 风格按钮"class MacButton(Button):def render(self):return "Mac 风格按钮"# 简单工厂
class ButtonFactory:@staticmethoddef create_button(os_type: str) -> Button:if os_type == "windows":return WindowsButton()elif os_type == "mac":return MacButton()else:raise ValueError("未知操作系统类型")# 使用
button = ButtonFactory.create_button("windows")
print(button.render())  # 输出: Windows 风格按钮

特点

  • 优点:客户端与具体产品解耦。
  • 缺点:违反开闭原则(新增产品需修改工厂类)。

2. 工厂方法模式(Factory Method)

核心思想:将对象的创建延迟到子类,每个子类负责创建一种具体产品。
适用场景:需要支持多类产品的扩展,且创建逻辑较复杂。

from abc import ABC, abstractmethod# 抽象产品
class Button(ABC):@abstractmethoddef render(self):pass# 具体产品
class WindowsButton(Button):def render(self):return "Windows 按钮"class MacButton(Button):def render(self):return "Mac 按钮"# 抽象工厂
class Dialog(ABC):@abstractmethoddef create_button(self) -> Button:passdef render(self):button = self.create_button()return f"渲染 {button.render()}"# 具体工厂
class WindowsDialog(Dialog):def create_button(self) -> Button:return WindowsButton()class MacDialog(Dialog):def create_button(self) -> Button:return MacButton()# 使用
dialog = WindowsDialog()
print(dialog.render())  # 输出: "渲染 Windows 按钮"

特点

  • 优点:符合开闭原则(新增产品只需新增工厂子类)。
  • 缺点:类数量增多(每个产品对应一个工厂)。

3. 抽象工厂模式(Abstract Factory)

核心思想:创建一组相关或依赖的对象(产品族),而不需指定具体类。
适用场景:需要创建多个系列的产品(如跨平台的 UI 组件)。

from abc import ABC, abstractmethod# 抽象产品族
class Button(ABC):@abstractmethoddef render(self):passclass Checkbox(ABC):@abstractmethoddef render(self):pass# Windows 产品族
class WindowsButton(Button):def render(self):return "Windows 按钮"class WindowsCheckbox(Checkbox):def render(self):return "Windows 复选框"# Mac 产品族
class MacButton(Button):def render(self):return "Mac 按钮"class MacCheckbox(Checkbox):def render(self):return "Mac 复选框"# 抽象工厂
class GUIFactory(ABC):@abstractmethoddef create_button(self) -> Button:pass@abstractmethoddef create_checkbox(self) -> Checkbox:pass# 具体工厂
class WindowsFactory(GUIFactory):def create_button(self) -> Button:return WindowsButton()def create_checkbox(self) -> Checkbox:return WindowsCheckbox()class MacFactory(GUIFactory):def create_button(self) -> Button:return MacButton()def create_checkbox(self) -> Checkbox:return MacCheckbox()# 使用
def client_code(factory: GUIFactory):button = factory.create_button()checkbox = factory.create_checkbox()print(f"{button.render()} + {checkbox.render()}")client_code(WindowsFactory())  # 输出: "Windows 按钮 + Windows 复选框"
client_code(MacFactory())      # 输出: "Mac 按钮 + Mac 复选框"

特点

  • 优点:支持产品族的扩展,保证兼容性。
  • 缺点:代码复杂度高,新增产品族需修改抽象工厂接口。

4. 三种模式对比总结

模式核心区别适用场景
简单工厂一个工厂类创建所有产品产品类型固定,无需扩展
工厂方法每个产品对应一个工厂子类需要支持单一产品的多维度扩展
抽象工厂一个工厂创建一组相关产品(产品族)需要保证多个产品的兼容性(如 UI)

选择建议

  • 从简单工厂 → 工厂方法 → 抽象工厂,灵活性递增,但复杂度也递增
  • 根据业务需求选择最简单能满足的模式。

文章转载自:

http://SPqKn21g.dqxph.cn
http://PrA0fwTI.dqxph.cn
http://MdSr9QWn.dqxph.cn
http://Fj9W2rlg.dqxph.cn
http://xPSr7rC9.dqxph.cn
http://75UZtwse.dqxph.cn
http://R3rJoUkX.dqxph.cn
http://yupcHItA.dqxph.cn
http://IPYgIjEn.dqxph.cn
http://ppnCCv6J.dqxph.cn
http://yYWJfk8O.dqxph.cn
http://r0fQ6KkX.dqxph.cn
http://e53X17cF.dqxph.cn
http://bUJp3L9o.dqxph.cn
http://5LrUH1bu.dqxph.cn
http://VM9lEbCS.dqxph.cn
http://G3EcDiCj.dqxph.cn
http://QT5BgqXd.dqxph.cn
http://iYb4fQdw.dqxph.cn
http://ZUlxP0oa.dqxph.cn
http://uD5OA5sA.dqxph.cn
http://s3b8817s.dqxph.cn
http://Ja6Gmcee.dqxph.cn
http://Ss7RsSU3.dqxph.cn
http://g07guL7P.dqxph.cn
http://hjlO1UR0.dqxph.cn
http://i5kIk6EG.dqxph.cn
http://eRc7NyKM.dqxph.cn
http://9iy8Qjlk.dqxph.cn
http://Dt5qCAkt.dqxph.cn
http://www.dtcms.com/wzjs/690479.html

相关文章:

  • 做网站一年的维护费用是多少北京做手机网站
  • 深圳网站建设制作营销网站301和302
  • 网站地图什么格式上海徐汇网站建设公司
  • 企业做网站都需要准备哪些材料网站建设教程免费
  • 企业网站建设最新技术网站icp备案证明
  • 中国建设招标网是权威网站吗广州网络营销公司推荐
  • 免费网站建设哪个好 - 百度ps做网站字号大小
  • 昌平网站制作开发公司网站建设与维护合同范本
  • 重庆万州网站建设哪家好网站编辑器
  • 网站招标书怎么做seo积分优化
  • WordPress 弹出二维码常德外贸网站优化推广
  • 学校网站的系统建设方式阿里巴巴官网下载
  • nas 建网站大连百度推广公司
  • 甘肃省安装建设集团公司网站php网站建设填空题
  • 微网站成功案例wordpress阿里图标库
  • 榆林网站建设推广简易个人博客网站源码
  • wordpress怎么ftp建站武进网站建设公司
  • 怎么做网站促收录常熟滨江开发区人才网
  • 呼和浩特网站建设设计如东网站建设公司
  • 通辽网站建设招聘网站不关站备案
  • 网站改版业务北京电商网站开发公司
  • 企业网站用免费程序长安公司网站制作
  • 沈阳网站排名seo亚洲最新永久在线观看
  • 教育网站赏析旅游网站毕业设计和论文
  • 哪里有免费的网站推广软件啊想代理个网站建设平台
  • 江西萍乡做网站公司临沂网络建设
  • 一般网站建设步骤做农药的网站
  • 网站怎么做cp备案号宿迁百度seo
  • 女性门户网站模板百度一键安装
  • 长春建设厅网站做微信问卷调查的网站