设计模式
>进阶的程序员>
一个处于探索期的程序员。
展开
-
设计模式--原型模式
原型模式原型模式用于创建重复的对象,属于创建性模式。这种模式是实现一个原型接口,该接口用于克隆当前的对象,通过克隆保证性能,克隆显然比new对象更快。原型模式 代码示例我们将创建一个抽象类 Shape 和扩展了 Shape 类的实体类。下一步是定义类 ShapeCache,该类把 shape 对象存储在一个 Hashtable 中,并在请求的时候返回它们的克隆。Prototyp...原创 2018-08-27 23:06:29 · 187 阅读 · 0 评论 -
设计模式--面向对象编程的六大设计原则
开篇新工作主要是做android系统应用层的开发维护, 所以阅读大量源代码就是日常了,阅读过程中,深深的感受到了有必要再复习一遍设计模式,以便于吸收Google那庞大的精华~ 也越来越觉得做好学习笔记是一件很重要的事情,把学了的东西写成博客来记录,也是一件很有趣的事情,这篇就是接下来学习设计模式的第一篇笔记。面向对象编程的六大设计原则面向对象编程的六大设计原则有:单一职责原则、开放...原创 2018-06-02 20:49:24 · 776 阅读 · 0 评论 -
设计模式--工厂方法模式
工厂方法模式前一篇降到了简单工厂模式,也提到了简单工厂模式的缺点:违背了代码六大设计原则之一的开放封闭原则。为了解决这个问题,于是又引出一个新的设计模式:工厂方法模式。* 工厂方法模式(Factory Method Partten)*:定义一个抽象类(对某个产品的抽象),让子类去继承实现一个具体的产品。同时定义一个抽象的工厂类,每个具体的产品对应一个具体的工厂类,在工厂类中创建产品的实例。...原创 2018-06-03 23:00:13 · 211 阅读 · 0 评论 -
设计模式--简单工厂模式
设计模式系列链接: 设计模式–面向对象编程的六大设计原则学习设计模式一定要记住:设计模式的最大作用是降低代码耦合,减少项目需求变化所造成的影响 , 或者提升代码合并/移植的效率。简单工厂模式简介简单工厂模式,又叫静态工厂方法模式, 它的基本结构如下:在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个工厂类来负责创建其他类的实例,被创建的实例通常都...原创 2018-06-03 18:53:17 · 175 阅读 · 0 评论 -
设计模式--抽象工厂模式
抽象工厂模式抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里氏替换原则,任何接受父类型的地方,都应当能够接受子类型。嗯。。。看文字很绕口, 先直接往下看吧。。。简单工厂、工厂方法、抽象工厂的区别简单工厂:一个产品抽象类,具体的产品去继承这个抽象类; 一个工厂类...原创 2018-06-04 22:53:05 · 173 阅读 · 0 评论 -
设计模式--中介者模式
一、中介者模式定义中介者模式定义:用一个中介者对象来封装一系列的对象的交互,使各个对象间不需要显示的相互调用, 从而使其松耦合。概念总是抽象的,我们用两个图来表示一下。如果对象和对象直接直接作用,则耦合性较强, 如果一个类发生了改变,比如方法参数改变,其他相关的类都得进行变化, 这就是一种强耦合的方式, 这个时候, 如果引入中介者, 则可以降低类之间的耦合: 就像上面两张图...原创 2018-06-13 23:21:39 · 179 阅读 · 0 评论 -
设计模式--策略模式
一、策略模式定义定义一组算法家族,每个算法都单独实现,让这些算法可以相互替换,此模式让算法的变化不影响使用算法的业务代码。策略模式主要使用的就是多态机制, 其通用例图如下:IStrategy:抽象的策略类或者接口,定义算法策略的同样方法。 ConcreteStrategy:具体的策略类, 实现了具体的算法。 Context:上下文,用来维护一个IStrategy的引用对...原创 2018-06-21 23:30:24 · 154 阅读 · 0 评论 -
设计模式--装饰者模式
装饰者模式定义装饰者模式(Decorator Pattern):在不改变原类文件的情况下, 动态地扩展一个对象的功能。通过创造包装对象,来包裹原对象,并给其增加功能。UML图如下:Component:装饰类和被装饰类共同的父类ConcreteComponent:被装饰的对象 Decorator: 装饰类ConcreteDecoratorA:具体的装饰类A通常被装饰...原创 2018-06-24 22:24:25 · 194 阅读 · 0 评论 -
设计模式--代理模式
代理模式介绍代理模式(Proxy Pattern),就是一个类可以代表另一个类的功能。这种类型的设计模式属于结构性模式。为了使代理类和被代理类有相同的功能,通常实现同一个接口。作用:为对象A提供一种代理用来控制这个对象A主要解决问题: 在直接访问对象时带来的问题,比如对象在不同的进程(即跨进程),对象在远程服务器上等。对象由于某些原因,直接去访问会给使用者或者系统结构带来很多麻烦(...原创 2018-07-25 22:38:31 · 231 阅读 · 0 评论 -
设计模式--模板方法模式
一、模板方法模式定义模板方法模式应该算是最常用的设计模式之一了。模板方法模式在抽象的父类中定义了一个逻辑的骨架,而将一些具体的操作延迟到子类中,使得子类可以不改变一个算法或逻辑的结构就可以重定义该算法的特定步骤。还是看代码比较清楚,下面看示例代码。二、示例代码我们将创建一个定义操作的 Game 抽象类,其中,模板方法设置为 final,这样它就不会被重写。Cricket 和 F...原创 2018-08-28 22:40:06 · 160 阅读 · 0 评论 -
设计模式--外观模式
一、外观模式定义外观模式(Facade):为子系统的访问定义了对外的接口,隐藏了子系统内部调用的复杂性,从而使得外部对子系统的调用更方便,只需要调用这个接口即可。举个例子,加入某人手里有点钱,想买股票,但是股票太多了,要去一个一个的了解太复杂了,因此有了基金经理和基金,只需要从基金经理手里买一定份额就行,剩下的炒股操作就交给基金经理了。买股票的人就相当于外部调用,股票就相当于复杂的子系统内...原创 2018-08-29 21:15:46 · 149 阅读 · 0 评论