设计模式
皮甲龙龟
软件开发
展开
-
.NET设计模式(2):单件模式(Singleton Pattern)
单件模式(Singleton Pattern)概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。从另一个角度来说,Singleton模式其实也是一转载 2012-03-29 14:54:01 · 593 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory)
概述在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。模型图逻辑模型:物转载 2012-03-29 15:14:01 · 857 阅读 · 0 评论 -
工厂方法模式(Factory Method)
概述在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变?这就是要说的Factory Method模式了。意图定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory M转载 2012-03-29 15:30:39 · 618 阅读 · 0 评论 -
建造者模式(Builder Pattern)
概述在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。本文通过现实生活中的买KFC的例子,转载 2012-03-29 15:18:12 · 1831 阅读 · 0 评论 -
创建型模式专题总结(Creational Pattern)
概述创建型模式,就是用来创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。本文对五种常用创建型模式进行了比较,通过一个游戏开发场景的例子来说该如何使用创建型模式。为什么需要创建型模式所有的创建型模式都有两个永恒的主旋律:第一,它们都将系统使用哪些具体类的信息封装起来;第二,它们隐藏了这些类的实例是如何被创建和组织的。外界对于这些对象只知道它们共同转载 2012-03-29 15:21:38 · 527 阅读 · 0 评论 -
原型模式(Prototype Pattern)
概述在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适。那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化?意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。结构图Prototype模式结构图生活中的例子转载 2012-03-29 15:20:38 · 574 阅读 · 0 评论 -
模式其他篇
待更新中。----------------------------------------------------------------------------------------------------------------------------原创 2012-03-29 15:32:16 · 510 阅读 · 0 评论 -
.NET设计模式系列文章
最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记来写,可是写到今天,设计模式带给我的震撼,以及许多初学者朋友的热心支持,让我下定决心要把这个系列写完写好,那怕花上再多的时间也无所谓。本部分内容不断更新中。目录计划:第Ⅰ部分 开篇开篇第Ⅱ部分 创建型模式篇第1章 单件模式(Single Pattern)第2章 抽象工厂模式(Abstract Fac转载 2012-03-29 14:45:49 · 806 阅读 · 0 评论