设计模式
Victor_Zhang_SH
这个作者很懒,什么都没留下…
展开
-
观察者模式
观察者模式首先在Android中,我们往ListView添加数据后,都会调用Adapter的notifyDataChanged()方法,其中使用了观察者模式。当ListView的数据发生变化时,调用Adapter的notifyDataSetChanged函数,这个函数又会调用DataSetObservable的notifyChanged函数,这个函数会调用所有观察者(AdapterDataSetOb原创 2016-12-12 11:44:21 · 269 阅读 · 0 评论 -
原型模式
原型模式模式介绍模式的定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。模式的使用场景类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗;通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式;一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。原创 2016-12-16 16:41:57 · 359 阅读 · 0 评论 -
外观模式
外观模式定义为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。优缺点优点 松散耦合简单易用更好的划分访问的层次缺点 过多的或者是不太合理的Facade也容易让人迷惑。到底是调用Facade好还是直原创 2016-12-16 16:40:59 · 346 阅读 · 0 评论 -
单例设计模式
单例模式定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 Singleton:负责创建Singleton类自己的唯一实例,并提供一个getInstance的方法,让外部来访问这个类的唯一实例。饿汉式: private static Singleton uniqueInstance = new Singleton(); 懒汉式 private static Sin原创 2016-12-09 22:28:22 · 297 阅读 · 0 评论 -
代理模式
代理模式模式介绍代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。模式的使用场景就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。角色介绍抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。目标原创 2016-12-09 21:06:20 · 2470 阅读 · 0 评论 -
[置顶]常见面向对象原则
常见的面向对象设计原则单一职责原则 SRP 一个类应该仅有一个引起它变化的原因。开放关闭原则 OCP 一个类应该对外扩展开放,对修改关闭。里氏替换原则 LSP 子类型能够替换掉它们的父类型。依赖倒置原则 DIP 要依赖于抽象,不要依赖于具体类,要做到依赖倒置,应该做到: 高层模块不应该依赖底层模块,二者都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。接口隔离原创 2016-12-09 21:03:23 · 255 阅读 · 0 评论 -
策略模式
策略模式模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。模式的使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。需要安全的封装多种同一类型的操作时。出现同一抽象多个子类,而又需要使用if-else 或者 switch-原创 2016-12-09 21:02:00 · 385 阅读 · 0 评论 -
Builder 模式
Builder模式模式介绍模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。模式的使用场景相同的方法,不同的执行顺序,产生不同的事件结果时;多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时;产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适;Android源码中的模式实现在Android源码中,我们原创 2016-12-08 21:32:53 · 323 阅读 · 0 评论 -
适配器模式
适配器模式定义: 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。功能: 进行转换匹配,目的是复用已有的功能,而不是来实现新的接口。在适配器里实现功能,这种适配器称为智能适配器。优点:更好的复用性更好的扩展性缺点:过多的使用适配器,会让系统非常零乱,不容易整体进行把握。本质:转换匹配,复用功能。何时选用适配器模式:原创 2016-12-12 11:47:22 · 308 阅读 · 0 评论 -
简单工厂模式
简单工厂接口接口是一种特殊的抽象类,跟一般的抽象类相比,接口里的所有方法都是抽象方法,接口里的所有属性都是常量。也就是说接口里面只有方法定义没有任何方法实现。接口的思想是”封装隔离”简单工厂示例代码: https://github.com/GeniusVJR/DesignMode_Java/tree/master/SimpleFactory客户端在调用的时候,不但知道了接口,同时还知道了具体的实现原创 2016-12-12 11:45:33 · 301 阅读 · 0 评论 -
责任链模式
责任链模式模式介绍模式的定义一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。模式的使用场景一个请求可以被多个处理者处理或处理者未明确指定时。原创 2016-12-16 16:42:53 · 264 阅读 · 0 评论