
设计模式
文章平均质量分 83
古月印象星空
热爱生活,热爱工作
展开
-
工厂方法模式(Factory Method Pattern)理论篇
工厂方法模式属于类的创建型模式,它又被称为多态工厂模式(Factory MethodPattern)。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中一、什么是工厂方法模式工厂方法模式属于类的创建型模式,它又被称为多态工厂模式(Factory MethodPa原创 2012-06-05 22:15:59 · 2021 阅读 · 2 评论 -
观察者模式(Observer)
原文:http://blog.youkuaiyun.com/zhangerqing/article/details/8243942观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一转载 2016-03-25 17:08:40 · 946 阅读 · 0 评论 -
访问者模式
原文:http://www.cnblogs.com/java-my-life/archive/2012/06/14/2545381.html访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。一、分派的概念 变量被声明时的类型叫做变量的静态类型(Static Typ转载 2016-03-25 18:39:59 · 946 阅读 · 0 评论 -
设计模式之Mediator(中介者)模式(应用篇)
本文编辑整理自:http://blog.youkuaiyun.com/haiyan0106/article/details/1651719一、什么是中介者模式 Mediator模式也叫中介者模式,是由GoF提出的23种软件设计模式的一种。Mediator模式是行为模式之一,在Mediator模式中,类之间的交互行为被统一放在Mediator的对象中,对象通过Mediator对象同其他对象交互转载 2012-04-11 22:22:11 · 1336 阅读 · 0 评论 -
备忘录模式(Memento)
原文:http://blog.youkuaiyun.com/zhangerqing/article/details/8245537备忘录模式(Memento)主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,转载 2016-03-28 15:32:49 · 574 阅读 · 0 评论 -
状态模式(State)
原文:http://blog.youkuaiyun.com/zhangerqing/article/details/8245537状态模式(State)核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变转载 2016-03-28 15:35:08 · 696 阅读 · 0 评论 -
JAVA的23种设计模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化转载 2016-03-23 18:01:11 · 2714 阅读 · 2 评论 -
软件设计的开发关闭原则
一、理论知识Software entities (classes, modules, function, etc.) should be open for extension, but closed for modification. 软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。开闭原则(OCP:Open-Closed Principle)是指在进行面向对象设计(OO转载 2016-06-27 20:46:08 · 1166 阅读 · 0 评论 -
Android架构之MVP
转载请标明出处: http://blog.youkuaiyun.com/lmj623565791/article/details/46596109; 本文出自:【张鸿洋的博客】一、概述对于MVP(Model View Presenter),大多数人都能说出一二:“MVC的演化版本”,“让Model和View完全解耦”等等。本篇博文仅是为了做下记录,提出一些自己的看法,和帮助大家如何转载 2016-06-21 14:01:12 · 1518 阅读 · 0 评论 -
Android架构之MVP升级版
本文整理自:https://zhuanlan.zhihu.com/p/20001838http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/入门指南大家都知道要写一款精品软件是有难度且很复杂的:不仅要满足特定要求,而且软件还必须具有稳健性,可维护、可测试性强,并且能够灵活适应各种发展与变转载 2016-06-21 14:36:20 · 1980 阅读 · 0 评论 -
简单工厂模式 Simple Factory Pattern
一、什么是简单工厂模式简单工厂模式(Simple Factory Pattern)属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。二、模式中包含的角色及其职责1.工厂(Creator)角色原创 2012-06-04 22:31:52 · 1418 阅读 · 2 评论 -
设计模式之Mediator(中介者)模式(理论篇)
本文编辑整理自:http://tech.it168.com/a2009/0407/270/000000270955_1.shtmlhttp://www.java63.com/design_pattern/mediator_pattern.htmlhttp://blog.youkuaiyun.com/haiyan0106/article/details/1651719一、基本知识 M翻译 2012-04-11 22:21:03 · 1098 阅读 · 0 评论 -
模板方法模式
原文:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.htm模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。转载 2016-03-25 11:21:02 · 2032 阅读 · 0 评论 -
策略模式(strategy)
原文:http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构 策略模式是对算法的包装,是把使用转载 2016-03-25 10:46:49 · 1731 阅读 · 0 评论 -
工厂方法模式和IoC/DI的关系
本文摘自:http://danielzzu.blog.163.com/blog/static/11851530420112311303240/ 从某个角度讲,工厂方法模式和IoC/DI的思想很类似。如果你还不了解IoC/DI,请阅读《IoC/DI简介》 有了IoC/DI过后,应用程序就不再主动了,而是被动等待由容器来注入资源,那么在编写代码的时候,一旦要用到外部转载 2012-06-07 22:09:30 · 1456 阅读 · 0 评论 -
软件设计之框架
本文摘自: http://danielzzu.blog.163.com/blog/static/11851530420112311303240/一、框架是什么 简单点说:框架就是能完成一定功能的半成品软件。 就其本质而言,框架是一个软件,而且是一个半成品的软件。所谓半成品,就是还不能完全实现用户需要的功能,框架只是实现用户需要的功能的一部分,还需要进一步转载 2012-06-07 22:18:19 · 2079 阅读 · 2 评论 -
工厂方法模式(Factory Method Pattern) 应用篇(上)
工厂方法模式(Factory Method Pattern)属于类的创建型模式,它又被称为多态工厂模式。一、前言工厂方法模式(Factory Method Pattern)属于类的创建型模式,它又被称为多态工厂模式。本文主要讲工厂方法模式在实际中的应用,如果还不了解其理论知识,原创 2012-06-07 22:06:37 · 1431 阅读 · 2 评论 -
平行的类层次结构
本文摘自:http://danielzzu.blog.163.com/blog/static/11851530420112311303240/一、什么是平行的类层次结构 简单点说,假如有两个类层次结构,其中一个类层次中的每个类在另一个类层次中都有一个对应的类的结构,就被称为平行的类层次结构。 举个例子来说,硬盘对象有很多种,如分成台式机硬盘和笔记本硬盘,在台式机硬盘的具体实现转载 2012-06-07 22:10:57 · 1506 阅读 · 0 评论 -
工厂方法模式(Factory Method Pattern) 应用篇(下)
所谓参数化工厂方法指的就是:通过给工厂方法传递参数,让工厂方法根据参数的不同来创建不同的产品对象,这种情况就被称为参数化工厂方法。当然工厂方法创建的不同的产品必须是同一个Product类型的。 来改造前面的原创 2012-06-07 22:07:55 · 1360 阅读 · 2 评论 -
建造者模式(Builder)
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下:[java] view plain copy转载 2016-03-23 18:34:38 · 785 阅读 · 0 评论 -
原型模式(Prototype)
原型模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。在Java中,复制对象是通过clone()实现的,先创建一个原型类:[java] view plain copypublic class Prototype implements Cloneable { public Object clone转载 2016-03-23 18:37:23 · 824 阅读 · 0 评论 -
装饰模式(Decorator)
原文:http://blog.youkuaiyun.com/zhangerqing/article/details/8239539装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:转载 2016-03-24 14:11:05 · 747 阅读 · 0 评论 -
外观模式(Facade)
原文:http://blog.youkuaiyun.com/zhangerqing/article/details/8239539外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)我们先看下实转载 2016-03-24 14:19:39 · 648 阅读 · 0 评论 -
桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,转载 2016-03-24 14:22:56 · 880 阅读 · 0 评论 -
抽象工厂模式
简单工厂模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。请看例子:[java] v转载 2016-03-23 18:32:15 · 826 阅读 · 0 评论 -
给 Android 开发者的 RxJava 详解
原文:http://gank.io/post/560e15be2dca930e00da1083在正文开始之前的最后,放上 GitHub 链接和引入依赖的 gradle 代码: Github: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid 引入依赖: compile 'io转载 2016-06-22 14:45:22 · 6698 阅读 · 2 评论