随笔分类 - 设计模式
摘要:面向对象程序应该 对扩展开放,对更改封闭。 如果更改代码,要重新编译,重新测试,重新部署,会附带很多其他操作。 python可以使用鸭子模式,进行多态调用。 如下, a和b可以独立变化,不影响以下代码的稳定: self.x = a self.x.duck() self.x = b self.x.du
阅读全文
摘要:# conf.py import os import sys import inspect from abc import ABCMeta, abstractmethod class ConfBase(metaclass=ABCMeta): @abstractmethod def read(self
阅读全文
摘要:定义: 定义一系列算法, 把他们一个个封装起来, 并且使他们可互相替换(变化). 模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化). 理解: 比如说要读取配置文件,有好几种配置文件,json,yaml,xml,以后可能还要扩展, 可以将每种文件类型都设计为一个类,每个类中都有一个r
阅读全文
摘要:定义: 在一个方法中定义了一个算法的骨架或者步骤,而将一些步骤延迟到子类中去实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某一些步骤 自己理解: 在父类中设计好整体框架,比如调用顺序,将可扩展可改变写作虚函数,让子类自己去实现或重写。 在不改变程序整体结构的情况下,改变了程序的
阅读全文
摘要:Dependence Inversion Principle:依赖倒置原则 Single Responsibility Principle:单一职责原则 Open Closed Principle:开闭原则 Liskov Substitution Principle:里氏替换原则 Law of De
阅读全文