Java设计模式
peak wang
一名普通的搬运工.
展开
-
[设计模式]抽象工厂模式
抽象工厂模式(Abstract Factory Pattern),也是创建型设计模式之一。抽象工厂意味着生产出来的产品是不确定的;抽象工厂模式起源于以前对不同操作系统的图形华解决 方案,如不同操作系统中的按钮和文本框控件其实现不同,展示效果也不一样,对于每一个操作系统,其本身构成一个产品类,而按钮与文本框控件也构成一个产品类,两种关口 类两种变化,各自有各自的特性,如Android中的原创 2016-08-15 23:06:53 · 461 阅读 · 0 评论 -
[设计模式] 单例模式
单例模式是运用频率很高的模式,由于在客户端通常没有高并发的情况,因此选择哪种实现方式并不会有太大的影响,出于效率考虑建议使用(DCL)双重检查锁定单例 与 静态内部类单例静态内部类单例模式 * 特点:当第一次加载Singleton类时并不会初始化sInstance,只有在第一次调用Singleton的getInstance方法时才会导致sInstance被初始化。因此,一次调用ge原创 2016-08-08 22:18:34 · 494 阅读 · 0 评论 -
[设计模式]外观模式
外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各大种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们的开发过程中,外观模式也是我们封装API的常用手段,例如网络模块、ImageLoader模块等。原创 2016-09-01 20:21:16 · 341 阅读 · 0 评论 -
[设计模式]桥接模式
桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一,“桥梁”是连接河道两岸的主要交通枢纽,而桥接模式与现实中的情况很相似,也是承担着连接“两边”的作用。原创 2016-09-01 21:25:16 · 358 阅读 · 0 评论 -
[设计模式]访问者模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著访问者模式是一种将数操作与数据结构分离的设计模式,它是《设计模式》中23种设计模式中最复杂的一个,但它的使用频率并不高:大多数情况下,你并需要使用访问者模式,但是当你一旦需要使用它时,那你就是真地需要它了。访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的、比较稳定的对象结构,这些对象的类都拥有一个accept方法用来原创 2016-08-24 00:52:42 · 871 阅读 · 0 评论 -
[框架模式]MVP应用架构模式
MVP(Model View Presenter)目前在Android开发中越来越重要了,MVP能够有效地降低View复杂性,避免业务逻辑被塞进View中,使得View变成一个混乱的泥坑。MVP模式会解除View与Model的耦合,同时又带来了良好的可扩展性、可测试性,保证了系统的整洁性、灵活性。 可能对于简单的应用来说MVP稍显麻烦,各种各样的接口与概念,使得整个应用充斥着零散的接口,但是对于比较复杂的应用来说,MVP模式是一种良好的架构模式,它能够非常好地组织应用结构,使得应用变得灵活,拥抱变化。原创 2016-09-02 21:18:23 · 1490 阅读 · 0 评论 -
[设计模式]解释器模式
解释器模式(Interpreter Pattern)是一种用得比较少的行为型模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文。解释器模式在实际运用上相对来说要少很多,因为我们很少会自己去构造一个语言的方法。原创 2016-09-02 22:49:18 · 330 阅读 · 0 评论 -
[设计模式]代理模式
代理模式(Proxy Pattern)也称为委托模式,属于结构型设计模式,那么何为代理呢?其实生活中很常见,对于我们来说最常接触的莫过于代理上网了,连上代理服务器地址,就可以轻松畅游全世界的网络,还有叫同事帮忙买饭,请律师打官司等等。定义:为其他对象提供一种代理以控制对这个对象的访问。使用场景:当无原创 2016-08-26 00:03:22 · 389 阅读 · 0 评论 -
[设计模式]组合模式
组合模式(Composite Pattern)也称为部分整体模式(Part-Whole Pattern),结构型设计模式之一,组合模式比较简单,它将一组相似的对象看作一个对象处理,江根据一个树关结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别,生活中比较典型的例子-组织结构树状图原创 2016-08-26 23:22:15 · 500 阅读 · 0 评论 -
[设计模式]责任链模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著责任链模式(Iterator Pattern)是行为型设计模式之一,我们将多个节点首尾相连所构成的模型称为链,如锁链,就是由一个个铁环串起来的结构。对于链式结构,每个节点都可以被拆开再连接,因此,链式结构也具有很好的灵活性。将这样一种结构应用于编程领域,将每一个节点看作是一个对象,每一个对象拥有不同的处理逻辑,将一个请求从链式的首原创 2016-08-18 22:57:01 · 316 阅读 · 0 评论 -
[设计模式]观察者模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著观察者模式是一个使用率非常高的模式,它最常用的地方是GUI系统、订阅——发布系统。因为这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也会经常性变化,,但是业务逻辑基本变化不大,此时,GU原创 2016-08-21 01:23:40 · 386 阅读 · 0 评论 -
[设计模式]模板方法模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著在面向对象开发过程中,,通常会遇到这样一个问题,我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序,但是,某些步骤的具体实现是未知的,或者说某些步骤的实现是会随着环境改变的,例如,执行程序的流程大致如下:1.检查代码的正确性;2.链接相关的类库;3.编译相关代码;4.执行程序;对于不同的语言,上面4个步原创 2016-08-22 23:43:16 · 312 阅读 · 0 评论 -
[设计模式]命令模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著命令模式(Command Pattern)是行为型设计模式之一,命令模式相对于其他的设计模式更为灵活多变。如在操作系统中,我们点击“关机”命令,系统就会执行一系列的操作,如先是暂停处理事件,保存系统的一些配置,然后结束程序进程,,最后调用内核命令关闭计算机等,对于这一系列的命令,用户不用去管,,用户只需占击系统的关机按钮即可完成如原创 2016-08-19 23:58:45 · 626 阅读 · 0 评论 -
[设计模式]备忘录模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著备忘录模式是一种行为模式,该模式用于保存对象当前状态,,,并且在之后可以再次恢复到此状态,这有点像我们平时说的“后悔药”。备忘录模式实现的方式需要保证被保存的对象状态不能被对象从外部访问,目的是为了保护好被保存的这些对象状态的完整性以及内部实现不向外暴露。定义:在不破坏封装的前提下,捕获一个对象内部状态,并在该对象原创 2016-08-22 21:54:14 · 341 阅读 · 0 评论 -
[设计模式]工厂方法模式
工厂方法模式(Factory Patern),是创建型设计模式之一。工厂方法模式是一种结构简单的模式;定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。UML类图:示例:public原创 2016-08-15 01:31:58 · 351 阅读 · 0 评论 -
[设计模式]原型模式
原型模式是一个创建型的模式。原型二字青蛙了该模式应该有一个样板实例,用户从这个样板对象中复制一个内部属性一致的对象,,这个过程也就是我们俗称的“克隆”。被 复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更高效定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象原创 2016-08-10 00:49:23 · 467 阅读 · 0 评论 -
[设计模式]建造者模式
建造者(Builder)模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程,该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景:1.相同的方法,不同的执行顺序,产生不同的事件结果时。2.多个部件或原创 2016-08-08 23:29:57 · 305 阅读 · 0 评论 -
[设计模式]策略模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著实现某一个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能,例如:排序算法 可以使用 插入排序、冒泡排序等;针对这种情况,一种方法是将多种算法写在一个类中。例如可以将这些算法写到一个类中,每一个方法对应一个具体的算法, 一种是将这些算法封装在一个统一的方法中,通过if..else或者switch条件判原创 2016-08-16 21:51:51 · 408 阅读 · 0 评论 -
[设计模式]状态模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的、不可替换的,策略模式的行为是彼此独立、可相互替换的。用一句话来表述,状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对原创 2016-08-17 23:54:38 · 347 阅读 · 0 评论 -
[设计模式]面向对象的六大原则
一、优化代码的第一步——单一职责原则(Single Responsibility Principle SRP) 定义:就一个类而言,应该仅有一个引起它变化的原因。 一个类应该是一组相关性很高的函数、数据的封装。很多时候都是需要靠个人经验来界定,最大的问题就是对职责的定义, 什么是类的职责,以及怎么划分类的职责。二、让程度更稳定、更灵活——开闭原则(Open Clo原创 2016-08-09 00:07:23 · 380 阅读 · 0 评论 -
[设计模式]适配器模式
适配器模式在我们的开发中使用率极高,从代码中随处可见的Adapter就可以判断出来,从最早的ListView、GridView、到现在最新的RecyclerView都需要使用Adapter,并且在开发中我们遇到的优化问题、出错概率较大的地方也基本都出自Adapter。 适配器是将两个不兼容的火龙融合在一起,将不同的东西通过一种转换使得它们能够协作起来,例如,经常碰到要在两个没有关系的类型之间进行交互,第一个解决方案是修改各自类的接口,但是如果没有源代码或者我们不愿意为了一个应用而修改各自的接口,这种情原创 2016-08-29 21:09:26 · 1251 阅读 · 0 评论 -
[设计模式]装饰模式
装饰模式(Decorator Pattern)也称为包装模式(Wrapper Pattern),结构型设计模式之一,其使用一种对客户端透明的方式来动态地扩展对象的功能,同时它也是继承关系的一种替代方案之一,在现实生活中你也可以看见很多装饰模式的例子,比如人需要各式各样的衣着,不管穿什么样的衣服,对于人这个本质是不变的,这就是装饰模式原创 2016-08-30 23:20:42 · 363 阅读 · 0 评论 -
[设计模式]二十三种设计模式
分类:DesignPattern(8) 目录(?)[+]原文地址:http://blog.csdn.net/zhangerqing一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模转载 2016-08-09 23:54:31 · 15190 阅读 · 3 评论 -
[设计模式]享元模式
享元模式是对象池的一种实现,它的英文名称叫做Flyweight,代表轻量级的意思。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能、避免内存移除等。 享元对象中的部分状态是可以共享,可以共享的状态成为内部状态,内部状态不会随着环境变化;不可共享的状态则称之为外部状态,它们会随着环境的改变而改变。在享元模式中会建立一个对象容器,在经典的享元模式中该容器为一个Map,它的键是享元对象的内部状态,它的值就原创 2016-08-31 23:15:01 · 355 阅读 · 2 评论 -
[设计模式]迭代器模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著迭代器模式(Iterator Pattern)又称为游标(Cursor)模式,是行为型设计模式之一。迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如Java中的List、Map、数组等,我们知道对容器对象的访问必然会涉及遍历算法,我们可以将遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,原创 2016-08-22 23:03:19 · 347 阅读 · 0 评论 -
[设计模式]中介者模式
感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著中介者模式(Mediator Pattern)也称为调解者模式或调停者模式。定义:中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用,从而使它们可以松散耦合。当某些对象之初蝗作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。中介者模式将多对多的相互作用转化原创 2016-08-24 22:43:03 · 967 阅读 · 0 评论