摘要:
一、内容 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 二、角色 抽象类:定义抽象的原子操作(钩子操作);实现一个模板方法的骨架 具体类:实现原子操作 三、适用场景 一次性实现一个算法的不变的部分 各个子类中的公共行为 阅读全文
posted @ 2018-02-03 22:08
海燕。
阅读(171)
评论(0)
推荐(0)
摘要:
一、内容 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 二、角色 抽象策略(Strategy) 具体策略(ConcreteStrategy) 上下文(Context) 三、优点 定义了一系列可重用的算法和行为 消除了一些条件语句 可以提供相 阅读全文
posted @ 2018-02-03 21:49
海燕。
阅读(259)
评论(0)
推荐(0)
摘要:
一、内容 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都得到通知并被自动更新。 观察者模式又称‘发布-订阅’模式 二、角色 抽象主题(Subject) 具体主题(ConcreteSubject)——发布者 抽象观察者(Observer) 具体观察者(Concret 阅读全文
posted @ 2018-02-03 21:43
海燕。
阅读(209)
评论(0)
推荐(0)
摘要:
一、内容 提供一种方法顺序访问一个聚合函数一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示 二、实现方法 迭代器内部实现:__iter__、__next__方法 三、代码实现 阅读全文
posted @ 2018-02-03 21:29
海燕。
阅读(206)
评论(0)
推荐(0)
摘要:
一、内容 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求 直到有一个对象处理它为止 二、角色 抽象处理者 具体处理者 客户端 例:请假部门批准:项目主管 》部门经理 》总经理 三、优点 降低耦合度:一个对象无需知道是其他哪一个对象 阅读全文
posted @ 2018-02-03 21:20
海燕。
阅读(285)
评论(0)
推荐(0)
摘要:
一、内容 为其他对象提供一种代理以控制对这个对象的访问。简单的说就是自己不想去干的事情交给代理去干 二、角色 抽象实体 实体 代理 三、适用场景 远程代理:为远程的对象提供代理 虚代理:根据需求创建很大的对象 保护代理:控制对原始对象的访问,用于对象有不同访问权限时,比如只读不能写。 四、优点 远程 阅读全文
posted @ 2018-02-03 20:47
海燕。
阅读(212)
评论(0)
推荐(0)
摘要:
一、内容 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性 二、角色 抽象组件 叶子组件 复合组件 客户端 三、优点 定义了包含基本对象和组合的类层次结构 简化客户端代码,即客户端可以一致地使用组合对象和单个对象 更容易增加新类型的组件 四、缺 阅读全文
posted @ 2018-02-03 19:54
海燕。
阅读(218)
评论(0)
推荐(0)
摘要:
一、内容 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作 二、角色 目标接口(Target) 待适配的类(Adaptee) 适配器(Adapter) 三、两种实现方式 类适配器:使用多继承 对象适配器:使用组合 四、适用场景 想使用一个已 阅读全文
posted @ 2018-02-03 18:48
海燕。
阅读(358)
评论(0)
推荐(0)
摘要:
一、内容 将一个复杂对象的构建与它表示分离,使得同样的构建过程可以创建不同的表示 二、角色 抽象建造者 具体建造者 指挥者 产品 建造者模式与抽象工厂模式相似,也用来创建复杂对象。主要区别是建造者模式着重一步步构造一个复杂对象,而抽象工厂模式着重于多个系列的产品对象。 三、优点 隐藏了一个产品的内部 阅读全文
posted @ 2018-02-03 17:46
海燕。
阅读(207)
评论(0)
推荐(0)
摘要:
一、内容 定义一个工厂类接口,当工厂子类来创建一系列相关或相互依赖的对象 例:生产一部手机,需要手机壳、CPU、操作系统三类对象进行组装,其中每类对象都有不同的种类。对每个具体工厂,分别生产一部手机所需要的三个对象。 二、角色 抽象工厂角色(Creator) 具体工厂角色(Concrete Crea 阅读全文
posted @ 2018-02-03 16:36
海燕。
阅读(267)
评论(0)
推荐(0)
摘要:
一、内容 定义一个用于创建对象的接口(工厂接口),让子类决定实例化哪一个产品类 二、角色 抽象工厂角色(Creator) 具体工厂角色(Concrere Creator) 抽象产品角色(Product) 具体产品角色(Concrete Product) 工厂方法模式相比简单工厂模式将每个具体产品都对 阅读全文
posted @ 2018-02-03 15:36
海燕。
阅读(288)
评论(0)
推荐(0)
摘要:
一、内容 不直接向客户端暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。 二、角色 工厂角色(Creator) 抽象产品角色(Product) 具体产品角色(Concrete Product) 三、优点 隐藏了对象创建的实现细节 客户端不需要修改代码 四、缺点 违反了单一职责原则, 阅读全文
posted @ 2018-02-03 15:10
海燕。
阅读(475)
评论(0)
推荐(0)
摘要:
一、什么是设计模式? 二、设计模式七大原则 1、开放封闭原则:一个软件实体如类,模块和函数应该对扩展是开放的,对修改是关闭的。即软件实体应尽量在不修改原有代码的情况下进行扩展(装饰器) 2、里氏替换原则:重写父类里面的方法,逻辑可能不一样,但是返回的结果参数啥的要一样(所有引用基类的地方必须能透明的 阅读全文
posted @ 2018-02-03 14:35
海燕。
阅读(1807)
评论(1)
推荐(1)
浙公网安备 33010602011771号