设计模式
文章平均质量分 84
CarolineVampire
努力向上的一个可爱的人。Never Give up!
展开
-
为什么我们要学习设计模式
转自:http://zhuanlan.zhihu.com/vczh-nichijou/19835717?utm_campaign=rss&utm_medium=rss&utm_source=rss&utm_content=title先说点题外话。最近想做一个Computational Graph Database (https://github.com/vczh/vczh_toys/b转载 2015-01-09 17:43:03 · 769 阅读 · 0 评论 -
设计模式:8)外观设计模式
医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求化验,病人必原创 2016-01-04 11:20:35 · 370 阅读 · 0 评论 -
设计模式:7)代理设计模式
java代理机制Table of Contents1 引言2 常见的代理3 代理模式UML图4 代理模式实例5 java动态代理5.1 java动态代理UML图6 代理模式与装饰者模式的区别6.1 装饰者模式UML图6.2 形象说明1 引言我们书写执行一个功能的函数时,经常需要在其中写入与功能不是直接相关但很有必要的代 码,如日志记录,信息发送,安全和事原创 2016-01-04 11:19:08 · 332 阅读 · 0 评论 -
设计模式:6)原型设计模式
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在ja原创 2016-01-04 11:17:48 · 257 阅读 · 0 评论 -
设计模式:5)单例模式
1.概念 保证一个类仅有一个实例(构造方法私有化),并提供一个访问它的全局访问点(static的getInstance方法)。 2.实现思路 想要控制一个类只被创建一个实例,那么首要的问题就是要把创建实例的权限收回,让类自身来负责自己类实例的创建工作,然后由这个类来提供外部可以访问这个类实例的方法。 3.实现方式 1)懒汉式 2)饿汉式原创 2015-05-06 11:54:06 · 805 阅读 · 4 评论 -
设计模式:3)观察者模式
观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。实例:猎头、找工作的人 Subject接口(猎头) public interface Subject { public void registerObserver(Observer o); pu原创 2015-04-17 11:40:28 · 390 阅读 · 0 评论 -
设计模式:1)模板方法
1.概念定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类在不改变一个算法的结构即可重定义该算法的某些特定步骤。2.模板方法使用到了“好莱坞法则” “好莱坞法则”–不要找我们,我们会联系你。 即父类通过在公共方法里调用抽象方法,而具体的实现由子类负责。原创 2015-04-15 13:53:42 · 360 阅读 · 0 评论 -
设计模式:2)策略设计模式
策略模式的定义: 它定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。以四则运算举例:输入两个数a和b我们可能会进行加减乘除等操作,具体采用哪种操作,由用户自己决定。原创 2015-04-17 11:12:07 · 422 阅读 · 0 评论 -
设计模式:4)生成器模式
1.定义 将一个负责对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示。原创 2015-04-24 17:45:59 · 324 阅读 · 0 评论 -
设计模式(一)--工厂模式
转载自:http://blog.csdn.net/hguisu/article/details/7505909设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤转载 2015-01-13 11:04:29 · 379 阅读 · 0 评论 -
设计模式:9)装饰者模式
解决咖啡店饮料问题的方法: 以饮料为主体,然后在运行时以调料来“装饰”饮料。 比如,顾客想要摩卡(Mocha)和奶泡(Whip)深焙咖啡(DarkRoast): DarkRoast继承自Beverage,有一个cost()方法。 第一步,以DarkRoast对象开始; 第二步,顾客想要摩卡,所以建立一个Mocha装饰者对象,并用它将DarkRoast对象包装(wrap原创 2016-01-04 11:21:31 · 358 阅读 · 0 评论