设计模式
VVSG
这个作者很懒,什么都没留下…
展开
-
设计模式(一)设计六大原则
1. 单一职责原则(SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因。 从这句定义我们很难理解它的含义,通俗讲就是我们不要让一个类承担过多的职责。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到破坏。 比如我经常看到一些Android开发在Activity中写B转载 2017-02-06 10:10:20 · 150 阅读 · 0 评论 -
设计模式(十一)策略模式
前言 当我们写代码时总会遇到一种情况就是我们会有很多的选择,由此衍生出很多的if…else,或者case。比如我们根据学生的成绩来评级,60分是及格,90分是优秀,这就会用到很多if…else或者case。当然很多个算法集中在一个类的时候就会使得这个类变得臃肿,维护的成本也会加大。关于学生评级的例子,如果我们新增一种情况比如70分是一般,就需要修改算法的代码,而且还是在一堆if…else或者ca...转载 2017-02-06 10:31:31 · 168 阅读 · 0 评论 -
设计模式(十)工厂方法模式
前言 在此前的设计模式(四)简单工厂模式中我们介绍了简单工厂模式,在这篇文章中我们来介绍下工厂方法模式,它同样是创建型设计模式,而且又有些类似,文章的末尾会介绍他们之间的不同。 1.工厂方法模式简介 工厂方法模式定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法模式UML图 找了下网上的UML图,都画的丑丑的,自己画吧,结果就出来...转载 2017-02-06 10:30:09 · 206 阅读 · 0 评论 -
设计模式(九)模版方法模式
1.模版方法模式简介 模版方法模式介绍 在软件开发中,有时会遇到类似的情况,某个方法的实现需要多个步骤,其中有些步骤是固定的,而有些步骤并不固定,存在可变性。为了提高代码的复用性和系统的灵活性,可以使用模板方法模式来应对这类情况。 模版方法模式定义 定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 模版方法模式结构图 ...转载 2017-02-06 10:28:48 · 179 阅读 · 0 评论 -
设计模式(八)外观模式
1.外观模式简介 外观模式介绍 当我们开发Android的时候,无论是做SDK还是封装API,我们大多都会用到外观模式,它通过一个外观类使得整个系统的结构只有一个统一的高层接口,这样能降低用户的使用成本。 外观模式定义 为系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用。 外观模式结构图 Facade:外观类,知道哪些子系统类负责处理请求...转载 2017-02-06 10:27:33 · 148 阅读 · 0 评论 -
设计模式(七)装饰模式
1.装饰模式简介 装饰模式介绍 装饰模式是结构型设计模式之一,不必改变类文件和使用继承的情况下,动态地扩展一个对象的功能,是继承的替代方案之一。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 定义 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式结构图 Component:抽象组件,给对象动态的添加职责。 ConcreteComp...转载 2017-02-06 10:25:59 · 209 阅读 · 0 评论 -
设计模式(六)代理模式
1.代理模式简介 代理模式介绍 代理模式也叫委托模式,是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场景有很多,比如代购、代理上网、打官司等。 定义 为其他对象提供一种代理以控制这个对象的访问。 代理模式结构图 Subject:抽象主题类,声明真实主题与代理的共同接口方法。 RealSubject:真实主题类,定义了代理所表示的真实对象,客户端通过代理类间接的调用真实...转载 2017-02-06 10:24:25 · 160 阅读 · 0 评论 -
设计模式(五)观察者模式
1.观察者模式模式简介 定义 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。 观察者模式结构图 Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都...转载 2017-02-06 10:22:23 · 172 阅读 · 0 评论 -
设计模式(四)简单工厂模式
1.简单工厂模式简介 定义 简单工厂模式属于创建型模式又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。 简单工厂模式结构图 Factory:工厂类,简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。 IProduct:抽象产品类,简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共...转载 2017-02-06 10:20:35 · 152 阅读 · 0 评论 -
设计模式(三)建造者模式
相关文章设计模式(一)建造者模式 1.建造者模式简介 定义 建造者模式(builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 简介 建造者模式(builder)是创建一个复杂对象的创建型模式,将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示分离开来。 例如我们要DIY一个台式机电脑,我们找到DIY商家,我们可以要求这台电脑的cpu或...转载 2017-02-06 10:15:40 · 219 阅读 · 0 评论 -
设计模式(二)单例模式的七种写法
面试的时候,问到许多年轻的Android开发他所会的设计模式是什么,基本上都会提到单例模式,但是对单例模式也是一知半解,在Android开发中我们经常会运用单例模式,所以我们还是要更了解单例模式才对。 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式结构图: 单例模式有多种写法各有利弊,现在我们来看看各种模式写法。 1. 饿汉模式 public class Si...转载 2017-02-06 10:13:26 · 194 阅读 · 0 评论 -
设计模式(十二)享元模式
享元模式定义 享元模式是结构型设计模式的一种,是池技术的重要实现方式,它可以减少应用程序创建的对象,降低程序内存的占用,提高程序的性能。 定义:使用共享对象有效的支持大量细粒度的对象 要求细粒度对象,那么不可避免地使得对象数量多且性质相近,这些对象分为两个部分:内部状态和外部状态。内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随环境的改变而改变。而外部状态是对象依赖的一个标记是随...转载 2017-02-06 10:35:18 · 194 阅读 · 0 评论