python设计模式 读书笔记

模板模式:抽取通用部分,实现代码复用
责任链模式:请求被多个节点执行 或 请求沿着责任链传递,直到被某个节点处理
观察者模式:请求被多个节点执行【主题实现add/remove/notify接口,所有观察者实现统一的update接口,notify会调用所有观察者的update接口】
状态模式:在状态改变之前或之后做某些动作
策略模式:动态选择算法(根据入参动态决定执行哪个函数)

工厂模式:根据入参返回不同对象【虽然返回了不同的对象,但这些对象都有一样的方法,只是不同对象对方法的实现不一样】
建造者模式:分多个函数完成发杂对象的创建(工厂模式是单步创建对象,建造者模式分多步创建,并始终使用一个指挥者)
原型模式:克隆对象(deepcopy)

适配模式:在外面包了一层代码,使两个接口能正常通信(将旧类换个名字赋给新类self.__dict__[newname]=
修饰模式:扩展对象的功能【扩展已有程序,扩展手段除了修饰还有一种就是继承】
外观模式:在复杂对象之上实现一个抽象层,为复杂系统提供简单入口
单例模式:通过重写__new__实现
MVC:解耦界面和业务逻辑
代理模式:为接口加个保护层(在新类里实例化了要保护的类)

 

===========

观察者模式定义了对象间的一对多依赖

装饰者模式中装饰着包含被装饰者的引用

类适配器通过多重继承实现;对象适配器通过组合实现

外观模式:提供一个接口来访问子系统的一群接口:如家庭影院

适配器改变了对象的接口;装饰器改变了对象的行为

模板方法通过继承实现,父类定义了一个算法的步骤(大纲),允许子类为一个或多个步骤提供特定的实现
子类中通过覆盖钩子方法来影响父类中算法的步骤

策略模式也是通过继承实现,父类中组合了好多其他类型,子类中指明其他类型到底是啥(各种鸭子叫声不同)

工程模式也是通过继承实现,子类中决定实例化哪个类

 

 

posted on 2020-01-19 14:53  我和你并没有不同  阅读(185)  评论(0编辑  收藏  举报