随笔分类 -  Design Pattern

摘要:学习桥接模式时,参考了云飞龙行的“研磨设计模式之桥接模式”一文,感觉作者讲得很好,清晰易懂。该文地址:http://www.cnblogs.com/sjms/archive/2010/09/01/1814718.html桥接模式:定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥。在桥接模式中的桥接是单向的,也就是只能是抽象部分的对象去使用具体实现部分的对象,而不能反过来,也就是个单向桥。模式结构和说明:说明:Abs 阅读全文
posted @ 2011-04-16 16:44 糖拌咸鱼 阅读(753) 评论(0) 推荐(0)
摘要:定义:通常,客户类(clients of class)通过类的接口访问它提供的服务。有时,现有的类(existing class)可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的。这是由于现有的接口太详细或者缺乏详细或接口的名称与客户类所查找的不同等诸多不同原因导致的。在这种情况下,现有的接口需要转化(convert)为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能。适配器模式(Adapter Pattern)可以完成这样的转化。适配器模式建议定义一个包装类,包装有不兼容接口的对象。这个包装类指的就是适配器(Adapter 阅读全文
posted @ 2011-04-16 14:11 糖拌咸鱼 阅读(602) 评论(0) 推荐(0)
摘要:定义:在《设计模式》一书中,作者这样来叙述单例模式的:确保一个类只有一个实例并提供一个对它的全局访问指针。单例模式适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,它们都是原型的例子。典型的情况是,那些对象的类型被遍及一个软件系统的不同对象访问,因此需要一个全局的访问指针,这便是众所周知的单例模式的应用。当然这只有在你确信你不再需要任何多于一个的实例的情况下。单例模式看起来是最简单的设计模式之一,但是使用不当的话,会存在很多的缺陷。经典的单例模式如下:public final class ClassicSingleton { public static ClassicSin 阅读全文
posted @ 2011-04-16 09:30 糖拌咸鱼 阅读(457) 评论(0) 推荐(0)
摘要:本文章转自http://blog.csdn.net/ipqxiang/archive/2007/12/20/1955677.aspx感觉讲解得很详细。一、 抽象工厂(Abstract Factory)模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图:图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属的等级结构,就可以唯一的确定这个产品。引进抽象工厂模式所谓的抽象工厂是指一个工厂等级 阅读全文
posted @ 2011-04-15 20:41 糖拌咸鱼 阅读(478) 评论(0) 推荐(0)
摘要:工厂方法模式定义:工厂方法模式又称为工厂模式,属于类的创建型模式。在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化哪一个类。 在简单工厂模式中,一个工厂类处于对产品类进行实例化的中心位置,它知道每一个产品类的细节,并决定何时哪一个产品类应当被实例化。但是,简单工厂模式的致命弱点也就是处于核心地位的工厂类。而工厂方法模式,则是创建类多个产品的工厂,从而将产品的创建过程变得分散化,避免简单工厂模式中核心工厂负担过重的问题。参与者:工厂方法模式主要涉及4个参与者:抽象工厂类、实现抽象工厂类的具体 阅读全文
posted @ 2011-04-15 19:19 糖拌咸鱼 阅读(345) 评论(0) 推荐(0)
摘要:简单工厂模式: 定义:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式又被称为静态工厂模式,属于类的创建型模式。其实质是 由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例,但简单工厂模式并不是23种设计模式。参与者:简单工厂模式主要设计三个参与者(工厂角色,抽象产品角色,具体产品角色)一个实例: 在校园里,无论是老师还是学生,一般都会有一个id号码,用于登录校园内的各种门户系统。所以,经常会遇到用用户的id号码来区别用户身份,并创建用户对象的问题。1、首先建立一个抽象类SchoolUser,用做学生和教师的父类。package Simple. 阅读全文
posted @ 2011-04-15 16:27 糖拌咸鱼 阅读(455) 评论(0) 推荐(0)