摘要:rom abc import ABCMeta, abstractmethod class Handler(metaclass=ABCMeta): @abstractmethod def handle_leave(self,day): pass class GeneralManager(Handler
阅读全文
摘要:责任链模式(chain of responsibility): 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象 角色: 抽象处理者(Handler) 具体处理者(ConcreteHandler) 客
阅读全文
摘要:定义: 以共享的方式高效地支持大量细粒度对象的重用 核心: 享元对象能做到共享的关建是区分了内部状态和外部状态。 内部状态:可以共享,不会随环境变化而变化 外部状态:不可以共享,会随环境变化而改变 例如我们要在森林中种树 package designmode.flyweight; public cl
阅读全文
摘要:职责: 动态的为一个对象式增加新的功能。 装饰模式是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 实现细节 Component抽象构件角色:真实对象和装饰对象具有相同的接口,这样,客户端对象式就能够以与真实对
阅读全文
摘要:使用组合模式的场景: 把部分与整体的关系有树形结构来表示,从而使客户可以使用统一的方式处理部分对象和整体对象 组合模式核心: 抽象构件(Component)角色:定义了叶子和容器构件的共同点 叶子(Leaf)构件角色:无子节点 容器(Composite)构件角色:有容器特征,可以包含子节点 使用组合
阅读全文
摘要:from abc import ABCMeta, abstractmethod class Shape(metaclass=ABCMeta): def __init__(self, color): self.color = color @abstractmethod def draw(self):
阅读全文
摘要:桥接模式: 处理多层继承结构,处理多维度变化的场景,将各个维度设计师成独立的继承结构,使用各个维度可以独立的扩展在抽象层建立关联 以电脑为类,分为电脑类型与电脑品牌两个维度 package designmode.bridge.interfaces; /** * 电脑抽象类 * @author bai
阅读全文
摘要:创建一个Person类 创建一个Person类 public class Person{ private String name; private Integer age; public String getName(){ return name; } public void setName(Str
阅读全文
摘要:call()函数本质上是将一个类的实例转换成一个函数,例如下列示例: class Sample: def __init__(self, x, y): self.x = x self.y = y def __call__(self): return self.x + self.y 创建一个Sample
阅读全文