![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
desgin
fanxiangs
这个作者很懒,什么都没留下…
展开
-
设计模式--07代理模式
文章目录代理模式定义优点Python实现代理模式定义为其他对象提供一种代理以控制这个对象的访问。代理模式也叫做委托模式,是一种基本技巧。如状态模式、策略模式、访问者模式本质上是在更特殊的场景下采用了委托模式。Subject抽主题角色:抽象接口类RealSuject具体主题角色:业务逻辑的执行者Proxy代理角色:委托类,把抽象主题定义的方法委托给真实主题实现,并做预处理和善后处理工作优点职责清晰高扩展性智能化Python实现# -*- coding: UTF-8 -*-原创 2020-06-11 19:54:48 · 166 阅读 · 0 评论 -
设计模式--06建造者模式
文章目录建造者模式定义优点使用场景Python实现建造者模式定义建造者模式也叫生成器模式,将一个复杂对象的构建与它的表示分离,使得同样构建过程可以创建不用的表示。Product产品类:通常是实现了模板方法方法和基本方法Builder抽象建造者:规范产品的组建,一般是由子类实现ConcreteBuilder具体建造者:实现抽象类定义的所有方法,并返回一个组建好的对象Director导演类:负责安排已有模块的顺序,告诉Builder开始构建优点封装性建造者独立,容易扩展便于控制细节原创 2020-06-11 11:38:24 · 169 阅读 · 0 评论 -
设计模式--04模板方法模式
文章目录模板方法模式定义优点缺点使用场景Python实现模板方法模式定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结果即可重定义该算法的某些特定步骤。优点封装不变部分,扩展可变部分提取公共部分代码,便于维护行为由父类控制,子类实现缺点按照一般设计习惯,抽象类负责生命最抽象、最一般的事物属性和方法,实现类完成具体的事物属性和方法。但是模板方法模式却颠倒了,抽象类定义了部分抽象方法,由子类实现,子类执行结果影响了父类发结果,也就是对父类产生了影响。原创 2020-06-10 10:26:45 · 145 阅读 · 0 评论 -
设计模式--03抽象工厂模式
文章目录抽象工厂方法定义优点缺点使用场景注意事项Python实现抽象工厂方法定义为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类。优点封装性产品族内的约束为非公开状态缺点产品族扩展困难使用场景一个对象组都有着相同的约束,则可以使用抽象工厂模式。例:使用抽象工厂模式,产生不同操作系统下的编辑器和图片处理器。注意事项抽象工厂模式是产品族扩展困难,而不是产品等级。在改模式下,产品等级是非常容易扩展的,也就是说横向扩展容易,纵向扩展困难。Python实现# -原创 2020-06-07 16:25:48 · 100 阅读 · 0 评论 -
设计模式--02工厂方法
文章目录工厂方法优点使用场景扩展Python实现参考资料工厂方法优点良好的封装,代码结构清晰,典型的解耦合模块扩展性强屏蔽产品类,不需要关心产品的变化使用场景需要灵活的、可扩展框架用于异构项目扩展Python实现# -*- coding: UTF-8 -*-class BlackHuman: def __init__(self, name): self.name = name def create(self): print('原创 2020-06-07 13:12:05 · 104 阅读 · 0 评论 -
设计模式--01单例模式
文章目录单例模式优点缺点使用场景注意事项扩展Python实现使用模块使用装饰器使用类基于\_\_new__方法实现(推荐)基于metaclass方式实现Java实现单例模式优点由于内存中只有一个实例,减少了内存开支,减少了系统性能开销避免对资源的多重占用,例如写文件动作设置全局变量,优化和共享资源访问。例如,可以设计一个单例类,负责所有数据的映射处理缺点单例模式一般没有接口,扩...原创 2020-04-17 17:41:55 · 156 阅读 · 0 评论