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

网站页面的组成企业管理培训课程培训机构

网站页面的组成,企业管理培训课程培训机构,泉州手机网站建设公司哪家好,wordpress另一更新进行中文章目录 前言一、原型模式二、原型模式示例三、原型管理器 前言 GOF设计模式分三大类#xff1a; 创建型模式#xff1a;关注对象的创建过程#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式#xff1a;关注类和对… 文章目录 前言一、原型模式二、原型模式示例三、原型管理器 前言 GOF设计模式分三大类 创建型模式关注对象的创建过程包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式关注类和对象之间的组合包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。行为型模式关注对象之间的交互包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。 一、原型模式 原型模式Prototype Pattern 定义使用原型实例指定创建对象的种类并且通过克隆这些原型创建新的对象。解决问题如何通过克隆来得到一个一模一样的对象通过克隆方法所创建的对象是全新的对象它们在内存中拥有新的地址。使用场景 创建新对象成本较大系统要保存对象的状态在运行时动态地创建和定制对象 组成 原型接口Prototype声明克隆自身的接口。具体原型ConcretePrototype实现原型接口提供克隆自身的操作。客户端Client让一个原型克隆自身从而创建一个新的对象。 优点 当创建新的对象实例较为复杂时使用原型模式可以简化对象的创建过程通过复制一个已有实例可以提高新实例的创建效率可以使用深克隆的方式保存对象的状态。使用原型模式将对象复制一份并将其状态保存起来以便在需要的时候使用例如恢复到某一历史状态可辅助实现撤销操作 缺点 注意深克隆与浅克隆的区别和使用场景 二、原型模式示例 使用原型模式快速创建工作周报 import copyclass Prototype:原型接口def clone(self):# 这里用深拷贝这意味着对象及其所有引用的对象都将被复制# 若不希望复制对象内部的引用类型copy.copy()来执行浅拷贝return copy.deepcopy(self)class WeeklyLog(Prototype):具体原型def __init__(self, nameNone, dateNone, contentNone):self.name nameself.date dateself.content content客户端代码 def display_log(log: WeeklyLog):print(###周报###)print(f姓名{log.name})print(f周次{log.date})print(f内容{log.content})print(# * 10, \n)log_lastweek WeeklyLog(张三, 第12周, 这周工作很忙每天加班) log_thisweek log_lastweek.clone() log_thisweek.date 第13周 display_log(log_lastweek) display_log(log_thisweek) print(log_lastweek is log_thisweek) # 输出 False表示是不同的对象输出结果 ###周报### 姓名张三 周次第12周 内容这周工作很忙每天加班 #############周报### 姓名张三 周次第13周 内容这周工作很忙每天加班 ##########False三、原型管理器 原型管理器Prototype Manager是将多个原型对象存储在一个集合中供客户端使用它是一个专门负责克隆对象的工厂原型管理器采用单例模式能节省系统资源也能更好地管理。定义一个集合存储原型对象需要某个原型对象的一个克隆调用相应对象的克隆方法来获得。 import copy原型接口class OfficialDocument:def clone(self):return copy.deepcopy(self)def display(self):raise NotImplementedError具体原型class FAR(OfficialDocument):def display(self):print(《可行性分析报告》)class SRS(OfficialDocument):def display(self):print(《软件需求规格说明书》)原型管理器使用模块单例模式class PrototypeManager:def __init__(self):self.official_docs: dict[str, OfficialDocument] {}self.add_official_docs()def add_official_docs(self):self.official_docs[far] FAR()self.official_docs[srs] SRS()def get_official_doc(self, key: str) - OfficialDocument:official_doc self.official_docs.get(key, None)if official_doc:return official_doc.clone()prototype_manager PrototypeManager()客户端代码 from prototypes import prototype_managerdoc1 prototype_manager.get_official_doc(far) doc2 prototype_manager.get_official_doc(far) doc1.display() doc2.display() print(doc1 is doc2)doc3 prototype_manager.get_official_doc(srs) doc4 prototype_manager.get_official_doc(srs) doc3.display() doc4.display() print(doc3 is doc4)输出结果 《可行性分析报告》 《可行性分析报告》 False 《软件需求规格说明书》 《软件需求规格说明书》 False您正在阅读的是《设计模式Python版》专栏关注不迷路~
http://www.dnsts.com.cn/news/217725.html

相关文章:

  • 南京企业网站开发注册公司所需费用
  • 学校的网站怎么做建设银行龙卡信用卡在境外网站支付
  • 建设招聘网站需要哪些资质iis 默认网站删除
  • 网站建设自查情况手机上page转换wordpress
  • wordpress 多站点错误网络黄页推广软件哪个好用
  • 域名时间与网站优化网站结构优化包括什么
  • 7年级微机课做网站的软件湖南常德红网百姓呼声
  • 网站推广怎么做与发布wordpress用户组权限设置
  • 信阳网站建设培训网站的建设与维护步骤
  • 优秀英文企业网站南宁seo网络优化公司
  • 网站缓存实例龙华网站网页设计
  • 网站开发用什么编辑器好点网站建设模板怎么直接套
  • 我的网站百度怎么搜索不到了优化大师卸载不了
  • 网站首页图片大全wordpress 图片的设置密码
  • 浏览网站模板手机网站模板案例
  • 网站都是用什么语言写的重庆市建设工程信息网登录入口
  • 网站建站代理加盟wordpress知更鸟菜单修改
  • 宁海有做网站的吗网站添加地图导航
  • 西宁seo网站建设top域名的网站
  • 郑州网站建站网站wordpress download文件
  • 淘宝网站代理怎么做的电商是做什么行业的
  • 医疗网站建设案例灵宝网站建设
  • 做公司月刊网站wordpress火车头采集
  • 芜湖网站建设优化怎么看一个网站的cms
  • 深圳招聘网站前十排名wordpress welcome
  • 摄影网站的市场可行性wordpress主题存放位置
  • 提升政务网站建设水平大连网站制作怎么做
  • 专门做钻石国外网站apple官网入口
  • 公司做网站推广要注意什么做旅游网约车的网站
  • 制作网站的钱淘金网站建设