随笔分类 -  设计与模式

摘要:从七月份开始一直到九月底才看完设计模式,在这个过程中我不敢说我已经掌握了那本书里面的内容,或者说1/5,没能力说也没有资格说。但是结果不重要,重要的是这个过程我的收获!主要包括如下几个方面: 1、认识了这么多设计模式。刚刚接触java没多久就在学长那里听过设计模式的大名,但是由于能力有限,一直不敢触碰。而今有幸将其都认识了。 2、开始有设计的理论了。在接触设计模式之前没有怎么想过设计方面东东,看到问题就立马动手解决,没有想到怎么样来设计更好,如何来是这块更加优化、漂亮。 3、开始考虑系统的可扩展性了。 4、在遇到问题后开始想有那个设计模式会适用这个场景。 5、对面向对象有了更深一步的了解。 鄙 阅读全文
posted @ 2013-10-09 16:49 自助者天助 阅读(219) 评论(0) 推荐(0) 编辑
摘要:一、 代理(Proxy)模式 代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 代理模式的英文叫做Proxy或Surrogate,中文都可译成"代理"。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 二、 代理的种类 如果按照使用... 阅读全文
posted @ 2008-04-10 10:24 自助者天助 阅读(330) 评论(0) 推荐(0) 编辑
摘要:一、 适配器(Adapter)模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 类的适配器模式使用起来有点像多重继承机制,但因为多重继承往往带来麻烦,C#中已经不支持了,利用接口的特性,把一些零散类组织到一起,成为一个新的类来对实现调用,并且看起来像是对一个类的操作,就是适配器的目的。实际上,适配器模式更多的是强调对代码的组... 阅读全文
posted @ 2008-04-09 14:58 自助者天助 阅读(218) 评论(0) 推荐(0) 编辑
摘要:一、 原型(Prototype)模式 原型模式的用意是:通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。 从孙大圣的手段谈起 孙悟空在与黄风怪的战斗中,"使一个身外身的手段:把毫毛揪下一把,用口嚼得粉碎,望上一喷,叫声'变',变有百十个行者,都是一样得打扮,各执一根铁棒,把那怪围在空中。"换而言之,孙悟空可以根据自己的形象,复制出很多"身外身"来... 阅读全文
posted @ 2008-04-09 11:33 自助者天助 阅读(245) 评论(0) 推荐(0) 编辑
摘要:先给出一个非常简单的例子:操作系统的文件夹和文件 public abstract class AbstractFile { // 抽象文件 文件和文件夹继承此类 public abstract void Borwser(); } public class File : AbstractFile { /... 阅读全文
posted @ 2008-04-09 10:07 自助者天助 阅读(314) 评论(0) 推荐(0) 编辑
摘要:一、 观察者(Observer)模式 观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 一个软... 阅读全文
posted @ 2008-04-02 16:19 自助者天助 阅读(313) 评论(0) 推荐(0) 编辑
摘要:一、 策略(Strategy)模式 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cat)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的教材类图书实行每本一元的... 阅读全文
posted @ 2008-04-02 10:56 自助者天助 阅读(260) 评论(0) 推荐(0) 编辑
摘要:一、 建造者(Builder)模式 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。 对象性质的建造 有些情况下,一个对象会有一些重要的性质,在它们没有恰当的值之前,对象不能作为一个完整的产品使用。比如,一个电子邮件有发件人地址、收件人地址、主题、内容、附录等部分,而在最起码的收件人地址未被赋值之前,这个电子邮件不能发出。 再举... 阅读全文
posted @ 2008-04-01 16:35 自助者天助 阅读(243) 评论(0) 推荐(0) 编辑
摘要:概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。 从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮演了独一... 阅读全文
posted @ 2008-04-01 15:04 自助者天助 阅读(475) 评论(0) 推荐(0) 编辑
摘要:一、 门面(Facade)模式 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 医院的例子 用一个例子进行说明,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求化... 阅读全文
posted @ 2008-03-18 17:39 自助者天助 阅读(285) 评论(0) 推荐(0) 编辑
摘要:一、 抽象工厂(Abstract Factory)模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属的等级结构,就可以唯一的... 阅读全文
posted @ 2008-01-23 17:17 自助者天助 阅读(273) 评论(0) 推荐(0) 编辑
摘要:一、 工厂方法(Factory Method)模式 工厂方法(FactoryMethod)模式是类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。 工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。 在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类... 阅读全文
posted @ 2008-01-23 15:25 自助者天助 阅读(280) 评论(0) 推荐(0) 编辑
摘要:工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式 工厂方法(Factory Method)模式 抽象工厂(Abstract Factory)模式 一、 简单工厂(Simple Factory)模式 Simple Factory模... 阅读全文
posted @ 2008-01-23 14:59 自助者天助 阅读(203) 评论(0) 推荐(0) 编辑
摘要:天我去市场,要决定是买水果等产品,还是选择种水果的产品。具体怎么操作自己选择。来到市场,我发现主要有一些水果:苹果(Apple),葡萄(Grape)和鸭梨(Pear)。到底买什么好呢?我一阵思量。俗话说:“饭后一只烟,赛过活神仙。饭后吃苹果,西施见我躲。”为了老婆的漂亮,我决定买苹果。 下面开始Factory模式研究,当然是用我上面举的例子来说明。 Simple Factory模式 ... 阅读全文
posted @ 2007-08-21 10:12 自助者天助 阅读(222) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示