
设计模式
zhouyong0
这个作者很懒,什么都没留下…
展开
-
策略模式(TreeSet、TreeMap、优点、缺点(解决方案)、举例)
1.面向对象设计原则1.1 封装变化的概念1.2 编程中使用接口,而不是对接口的实现2.策略模式的定义2.1定义一组算法,将每个算法都封装起来,并且使它们之间可以互换2.2策略模式使这些算法在客户端调用它们的时候能够互不影响地变化3.策略模式的意思3.1策略模式使开发人员能够开发出由许多可替换的部分组成的软件,并且各个部分之间是弱连接的关系3.2弱连接的特性使软件具有更强的可扩展性,易于维护;更重要的是,它大大提高了软件可重用性。4.策略模式的原创 2011-05-22 14:39:00 · 5270 阅读 · 0 评论 -
《JAVA与模式》之责任链模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(Chain of Responsibility)模式的: 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和转载 2012-08-26 17:00:20 · 48262 阅读 · 11 评论 -
23个设计模式
设计模式分为三种类型,共23类。 创建型模式:单件模式、抽象工厂模式、建造者模式、工厂方法、原型模式。 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。 按alpha转载 2012-08-26 16:04:21 · 1806 阅读 · 0 评论 -
java 工厂方法模式
工厂方法模式又称为多态性工厂模式或虚拟构造子模式;与简单工厂模式不同,在工厂方法模式中,核心的工厂类不再负责所有具体产品实例的创建,而仅仅是需要负责给出具体工厂子类必须实现的接口,让工厂子类去负责具体产品实例的创建。工厂方法模式的一般性结构是:与 简单工厂模式 类似的,下面使用工厂方法模式来模拟一个简单的加减乘除的计算器:工厂方法模式结构示意图:共同转载 2012-08-26 12:20:50 · 886 阅读 · 0 评论 -
【单例模式】饿汉式&懒汉式
之前学习单例模式,现在回忆了一下,记录下关于单例模式的写法: 懒汉式:Java代码 public class Singleton { /* * 单例模式:单个实例服务于整个应用 * 懒汉式单例:只有在第一次请求实例的时候创建,并且只在第一次创建后,以后不再创建该类的实例 */转载 2012-08-24 23:43:37 · 610 阅读 · 0 评论 -
桥接模式 Bridge Pattern
一、什么是桥接模式Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。二、桥接模式的结构三、桥接模式的角色和职责Cl转载 2012-08-26 17:25:00 · 2797 阅读 · 0 评论 -
Java外观模式补充
使用Facade模式可以说是后台设计和编码人员的一个必备素质。我不止碰到过一个这样的后台开发人员,他们认为只要把后台功能完成了就万事大吉,而没有站在后台使用者的角度来看一看自己写出来的代码。其实,我们写出来的后台代码是要给别人使用的,所以我们提供给使用者的接口要越简单越好,这不单是对使用者好,同时对开发者也是好处多多的,至少你的接口简单了,你和使用者的交流就容易了。而Facade模式中的F转载 2012-08-26 16:36:09 · 765 阅读 · 0 评论 -
抽象工厂模式解析例子
抽象工厂模式中的有以下的四种角色: 抽象工厂(Abstract Factory)角色:担任这个角色的是工厂方法模式的核心,它是与应用系统商业逻辑无关的。具体工厂(Concrete Factory)角色:这个角色直接在客户端的调用下创建产品的实例。这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。抽象产品(Abstract Product)角色:担任这转载 2012-08-24 23:56:44 · 939 阅读 · 0 评论 -
观察者模式observer(行为型设计模式)
jdk中的awt、 swing 事件机制全都是用的观察者模式 概念一对多的关系,多个观察者 观察一个主题,当这个主题对象发生变化,会通知所有的观察者 角色(observer)抽象主题角色把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以删除观察者角色。一般用一个抽象类和接口来实现 抽象观察者原创 2011-06-27 11:12:00 · 631 阅读 · 0 评论 -
精通有状态vs无状态(Stateful vs Stateless)—Immutable模式之姐妹篇
我相信有不少人还不明白有状态和无状态(Stateful and Stateless)的概念,那么我们今天就来谈谈有状态和无状态,一方面不断总结提高自我,另一方面兼扫盲。这是Immutable不变模式的姐妹篇,大家可以参照着读。 Immutable不变模式的分析blog: http://www.iteye.com/topic/959751 基本概念: 有状态就是有数据存储功能。有转载 2012-08-10 22:23:14 · 822 阅读 · 0 评论 -
为什么要用单例模式?
我们在编程中最常用的模式就是单例模式了,然而单例模式都用在什么场合?为什么不用静态方法而要用单例模式呢?要搞清这些问题,需要从静态方法和非静态方法的区别和联系说起。 一、静态方法常驻内存,非静态方法只有使用的时候才分配内存? 一般都认为是这样,并且怕静态方法占用过多内存而建议使用非静态方法,其实这个理解是错误的。为什么会这样,先从内存分配开始说起:托转载 2012-08-10 21:59:35 · 773 阅读 · 0 评论 -
代理模式proxy (静态代理、动态代理)
1. 代理模式的原理,其实就是类的组合,静态代理和动态代理都是一样的。2. 代理一般可以用2种方式,一是继承, 二是组合2.1 方式一class A { void a() {}}class B extend A { void a() { // 前面的处理 super.a();原创 2011-06-27 10:38:00 · 681 阅读 · 0 评论 -
State模式(状态模式)消除烦琐的if..else语句
State模式的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用 :State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采转载 2011-09-28 09:38:41 · 1317 阅读 · 0 评论 -
适配器模式(结构型设计模式)
java.awt.event.MouseAdapter java.awt.event.KeyAdapter java.awt.event.WindowAdapter 等等都是适配器模式 // 运行适配器的例子public class TwoListennerAdapter { private Frame frame; private TextField原创 2011-06-27 10:55:00 · 591 阅读 · 0 评论 -
Java开发中的23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2013-04-16 23:32:58 · 1227 阅读 · 2 评论