设计模式
某工程师$
Java Python Go JS .etc
展开
-
《研磨设计模式》读书笔记之:命令模式、迭代器模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。命令模式(Commad):几点解释:命令模式中分为三个角色:Invoker、Commad、Receiver。客户端调用Invoker,Invoker持有Commad对象并转调其对应方法,而Commad持有Receiver对象并转调其对应方法。因此这三层...原创 2019-07-29 12:21:04 · 215 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:桥接模式、访问者模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。桥接模式(Bridge):几点解释:桥接模式的本质在于 分离抽象与实现。 Java中的接口的作用在于 封装隔离,和桥接模式不谋而合。 我们在Java中面向接口编程,所以 Java中无处不桥接。访问者模式(Visitor):几点解释:访问者...原创 2019-07-31 17:35:14 · 315 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:装饰器模式、职责链模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。装饰器模式(Decorator):几点解释:装饰器模式的本质在于,透明的给对象增加新的功能,并且这些功能可以灵活的组合和增减。 如果没有了那个抽象类,其实就和代理模式的结构是一致的了,二者的区别已经在前面代理模式说过了。 装饰对象会持有一个实际的对...原创 2019-07-31 16:56:14 · 295 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:备忘录模式、享元模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。备忘录模式(Memento):几点解释:备忘录模式的目的在于在不破坏对象封装性的前提下,保存对象的部分或者全部的数据到对象之外,用于在需要的时候恢复对象到某一个备忘录的状态。 实现方式为 创建一个私有的内部类用于保存对象的数据,这个内部类会实现一个 ...原创 2019-07-31 15:55:43 · 328 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:生成器模式、原型模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。生成器模式(Builder):几点解释:标准的构建器分为 Director和Builder 两个部分。Director中封装了相对固定的构建步骤,而变化的部分封装到具体的 Builder对象中。Director在执行具体的构建步骤时,会在需要的时候从...原创 2019-07-26 15:12:10 · 299 阅读 · 1 评论 -
《研磨设计模式》读书笔记之:工厂方法模式、抽象工厂模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。工厂方法模式(FactoryMethod):几点解释:简单工厂是由客户端调用静态方法得到具体实现的一个引用;工厂方法模式中的工厂方法一般不提供给客户端使用,这也是图中声明为 protect 的原因,由具体的子类来实现工厂方法,返回一个具体对象的引用,这...原创 2019-07-26 11:01:52 · 232 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:适配器模式、单例模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。适配器模式(Adaptor):几点解释:本质:功能已经实现了,但是接口不匹配,中间加一层适配器类,通过转调的方式,将已有的功能匹配到特定的接口上。 客户端使用的是 接口A, 功能A,同时已经存在了功能B,只是接口和客户端使用的 A接口不一致。此时,不...原创 2019-07-25 16:30:15 · 218 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:简单工厂、外观模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。简单工厂:几点解释:客户端通过调用 Factory.createAImpl() 方法来创建A的实例 工厂一般只需要一个,不需要有实例,所以将构造方法设为私有,不允许创建实例 Factory.createAImpl() 可以带参数,通过传入不同的参...原创 2019-07-25 13:22:36 · 249 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:策略模式、状态模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。策略模式(Strategy):几点解释:多个if、elif 相连的代码我们实际开发中肯定经常遇到,如果 if、elif的方法体都很大,那就可以考虑使用策略模式,抽象出统一的接口,并将方法体的逻辑剥离出来封装为接口的不同实现类。这样做扩展性得到了提高。...原创 2019-07-30 11:24:09 · 220 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:组合模式、模板方法模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。组合模式(Composite):几点解释:树形结构中有叶子节点,组合节点(包含其他节点),组合模式通过抽象出一个高层的父类,来对外提供统一的外观。这样,客户端就可以使用同一个引用类型来操作不同的节点对象。抽象父类中集合了所有类型的子类节点所需要的功能,...原创 2019-07-29 16:19:10 · 248 阅读 · 0 评论 -
《研磨设计模式》读书笔记之:代理模式、观察者模式
前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。代理模式(Proxy):几点解释:代理类实现了和原始类相同的接口,并且持有原始类的一个实例。客户端使用的是代理类的实例,代理类再向原始类实例发起相应的调用。这样就可以在调用原始类实例的方法前后做一些控制。 本质:控制对象的访问。也可以增添一些功能。...原创 2019-07-28 17:50:13 · 335 阅读 · 0 评论