
java 设计模式
iteye_12702
这个作者很懒,什么都没留下…
展开
-
观察者模式vs事件监听模式
GOF设计模式中有一种叫做观察者模式(Observer),属于行为型模式。又叫发布-订阅(Publish/Subscribe)模式、模型-视图 (Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个 主题对象在状态上发生变化时,会通知所有观察者对象,使它们...2016-03-05 11:04:19 · 988 阅读 · 0 评论 -
策略模式(Strategy)
[b]0、总述[/b] 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。 设计模式分为三种类型,共23种。 [b]创建型模式[/b]...2014-08-03 16:39:41 · 125 阅读 · 0 评论 -
设计模式六大原则
[b]目录:[/b] 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大原则(6):开闭原则 原文写的太美,不忍心修改: [url]http://www.uml.org.cn/sjms/201211023.asp...原创 2014-08-05 10:18:11 · 87 阅读 · 0 评论 -
观察者模式(Observer)
[b]1、引入[/b] 观察者模式是JDK中使用最多的模式之一,这是一种以[color=red]松耦合[/color]的方式处理一对多关系的模式。 比如一个气象站的项目。有一个气象数据的类WeatherData,他能及时获取到气象站硬件观测到的气象值,温度,湿度,气压。另外有3种展示平台需要实时展示当前这三个指标值,该怎么设计呢?首先要能保证及时获取最新数据,再次还要能更新展示平台。比如我...2014-08-05 10:32:04 · 111 阅读 · 0 评论 -
装饰者模式(Decorator)
[b]一、引入[/b] 本篇可以称为“给爱用继承的人一个全新的设计眼界”。我们即将再度探讨典型的[b]继承滥用[/b]问题。你将在本章学到如何使用对象[b]组合[/b]的方式,做到在运行时装饰类。一旦你熟悉了装饰的技巧,你将能在不修改任何底层代码的情况下,给你的对象赋予新的职责。 以StarBuzz咖啡店为例,他们原先的类设计是这样的: [img]http://dl2.iteye.com...2014-08-06 10:19:22 · 126 阅读 · 0 评论 -
单例模式(Singleton)
[b]一、引入[/b] 有一些对象其实我们只需要一个,比如线程池,缓存,对话框注册表的对象,日志对象等。事实上,这些类对象只能有一个实例,如果制造出多个实例,就会导致许多问题发生,例如程序的行为异常,资源使用过量或者是不一致的结果。 全局变量可以提供全局访问,但是不能确保只有一个实例。全局变量还有其他缺点。全局变量不能实现懒加载(也就是变量声明时就必须初始化对象),如果初始化这个对象是比较...2014-08-07 10:12:12 · 95 阅读 · 0 评论 -
命令模式(Command)
[b]一、引入[/b] 命令模式就是把方法调用封装起来。通过封装方法调用,我们可以把运算块包装成对象。调用此运算的对象不需要关心事情是如何运行的,只要知道如何使用包装成型的对象来完成方法调用即可。通过封装方法调用,可以做记录日志,线程池,工作队列等功能。 比如要实现一个家电自动化遥控器功能。遥控器有很多按钮,可以实现命令的开启和关闭。比如遥控电扇,音响等。而且每个电器设备提供的功能接口都不...2014-10-16 10:23:50 · 95 阅读 · 0 评论 -
适配器模式(Adapter)
[b]一、 引入[/b] 假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所涉及出俩的接口,不同于旧厂商的接口: [img]http://dl2.iteye.com/upload/attachment/0102/2684/601f59d4-c693-3293-a226-1f18b95de0f4.bmp[/img] 我们不想改变现有的代码,也不能改变新厂商的代码,...2014-10-21 17:25:04 · 101 阅读 · 0 评论 -
模板方法模式(Template)
[b]一、 定义[/b] 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以再不改变算法结构的情况下,重新定义算法中的某些步骤。 [img]http://dl2.iteye.com/upload/attachment/0102/2975/df74cf86-d2a1-3905-9e46-2e6f63f7b884.bmp[/img] 示例: [im...原创 2014-10-22 13:59:32 · 109 阅读 · 0 评论