
设计模式
netcaoniao
这个作者很懒,什么都没留下…
展开
-
泛型的单例模式
Example Language:c#Regarding technical s: OOP, SingleInstance Model======================BaseClass=========================================== public class SingleInstance where T:class,new ()原创 2013-01-16 11:28:48 · 526 阅读 · 0 评论 -
Bridge模式的几个要点
1.Bridgen模式使用“对象间的组合关系”原创 2014-04-16 10:19:44 · 792 阅读 · 0 评论 -
设计模式之组合模式之感
今天下班客厅的灯确实亮堂了许多,照照镜子感觉自己一下苍老许多,看来还是灯光暗比较好,看不出来自己的憔悴啊,哈哈,其实还是头发长了,决定出去剪发。 进到美发店,便有热情的服务生招呼,显示洗头,挑选造型师,开始剪发,剪发中被造型师推荐了各种各样的收费项目,我只选择了一样软化头发。完毕之后,看了下单子哇塞、好贵噢,不过造型师给我剪的发型我还是很喜欢的,我决定以后还找他剪,但是又太贵,无奈转载 2014-04-22 09:59:58 · 603 阅读 · 0 评论 -
观察者模式实例
周五开发会议,项目组长原创 2014-07-18 15:33:50 · 719 阅读 · 0 评论 -
重温设计模式(三)——职责链模式(chain of responsibility)
重温设计模式(三)——职责链模式(chain of responsibility) 一. 写在前面的 这么多的设计模式,我觉得职责链是我第一次看上去最简单,可是回想起来却又最复杂的一个模式。 因此,这个文章我酝酿了很久,一直也没有胆量发出来,例子也是改了又改,可是仍然觉得不够合理。所以希望各位多多指教。 二. 什么是链 imag转载 2014-07-23 13:48:53 · 576 阅读 · 0 评论 -
设计模式之中介者模式
一、引出模式在生活中,当电脑缺少了一块主板,那会怎么样?如果有人这样问我的话,我就会马上跳出来说“这电脑肯定报废了”,当然这不是重点。假如少了主板电脑还可以用的话,想想,里面的CPU、显卡、声卡、光驱、硬盘等等,不是就要我们自己用线把它们连起来。想想就觉得头疼,那么现在你觉得主板在电脑里扮演着什么角色呢?在软件的开发过程中,势必会碰到这样一种情况,多个类或多个子系统相互交互,而且交互很繁琐转载 2014-07-07 14:27:44 · 534 阅读 · 0 评论 -
外观模式 VS 中介者模式
看外观模式,自己刚开始的简单理解就是这个模式特别省事,方便自己。定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。讲述:外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一接口,降低子系统与客户端的耦合度,且客户端调用非常方便。说一个很常见的例子,比如转载 2014-07-08 10:27:10 · 712 阅读 · 0 评论 -
详解C# 迭代器
迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式。简单来说,迭代器模式使得你能够获取到序列中的所有元素而不用关心是其类型是array,list,linked list或者是其他什么序列结构。这一点使得能够非常高效的构建数据处理通道(data pipeline)--即数据能够进入处理通道,进行一系列的变换转载 2014-07-10 13:36:46 · 604 阅读 · 0 评论 -
备忘录模式
备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式,是GoF的23种设计模式之一,属于行为模式。定义(源于GoF《设计模式》):在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态原创 2014-07-29 10:09:07 · 672 阅读 · 0 评论 -
设计模式随笔系列:鸭子-策略模式(Strategy
鸭子-策略模式(Strategy)前言 万事开头难,最近对这句话体会深刻!这篇文章是这个系列正式开始介绍设计模式的第一篇,所以肩负着确定这个系列风格的历史重任,它在我脑袋里默默地酝酿了好多天,却只搜刮出了一点儿不太清晰的轮廓,可是时间不等人,以后再多“迭代”几次吧!在前面的随笔里,我已经提到了,这个系列准备以《Head First Design Patterns》的结构为主线,所以每个模式转载 2014-08-06 21:21:22 · 791 阅读 · 0 评论 -
Flyweight Pattern
面向对象的思想确实很好地解决了抽象性的问题,以至于在面向对象的眼中,万事万物一切皆对象。不可避免的是,采用面向对象的编程方式,可能会增加一些资源和性能上的开销。不过,在大多数情况下,这种影响还不是太大,所以,它带来的空间和性能上的损耗相对于它的优点而言,基本上不用考虑。但是,在某些特殊情况下,大量细粒度对象的创建、销毁以及存储所造成的资源和性能上的损耗,可能会在系统运行时形成瓶颈。那么我们该如何去转载 2015-08-13 10:39:06 · 463 阅读 · 0 评论 -
设计模式 策略模式Strategy
设计模式 ( 十八 ) 策略模式Strategy(对象行为型)1.概述 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个转载 2015-08-14 10:01:08 · 494 阅读 · 0 评论 -
设计模式 ( 十九 ) 模板方法模式Template method(类行为型)
1.概述在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。例子1:银行业务办理流程在银行办理业务时,一般都包含几个基本固定步骤:取号排队->办理具体业务->对银行工作人员进行评分。取号取号排队和对银行工作人员进行评分业务逻辑是一样的。但是办理具转载 2015-08-17 10:17:49 · 515 阅读 · 0 评论 -
确保对象的唯一性——单例模式 (四)
3.5 一种更好的单例实现方法 饿汉式单例类不能实现延迟加载,不管将来用不用始终占据内存;懒汉式单例类线程安全控制烦琐,而且性能受影响。可见,无论是饿汉式单例还是懒汉式单例都存在这样那样的问题,有没有一种方法,能够将两种单例的缺点都克服,而将两者的优点合二为一呢?答案是:Yes!下面我们来学习这种更好的被称之为Initializationon Demand Holder (转载 2013-08-01 13:59:45 · 829 阅读 · 0 评论 -
对象的克隆——原型模式(三)
7.4 带附件的周报 通过引入原型模式,Sunny软件公司OA系统支持工作周报的快速克隆,极大提高了工作周报的编写效率,受到员工的一致好评。但有员工又发现一个问题,有些工作周报带有附件,例如经理助理“小龙女”的周报通常附有本周项目进展报告汇总表、本周客户反馈信息汇总表等,如果使用上述原型模式来复制周报,周报虽然可以复制,但是周报的附件并不能复制,这是由于什么原因导致的呢?如何才能实现转载 2013-08-18 19:42:03 · 861 阅读 · 0 评论 -
对象的克隆——原型模式(四)
目录(?)[+]7.5原型管理器的引入和实现 原型管理器(Prototype Manager)是将多个原型对象存储在一个集合中供客户端使用,它是一个专门负责克隆对象的工厂,其中定义了一个集合用于存储原型对象,如果需要某个原型对象的一个克隆,可以通过复制集合中对应的原型对象来获得。在原型管理器中针对抽象原型类进行编程,以便扩展。其结构如图7-8所示:转载 2013-08-18 19:43:29 · 1179 阅读 · 0 评论 -
职责链模式
一. 写在前面的这么多的设计模式,我觉得职责链是我第一次看上去最简单,可是回想起来却又最复杂的一个模式。因此,这个文章我酝酿了很久,一直也没有胆量发出来,例子也是改了又改,可是仍然觉得不够合理。所以希望各位多多指教。二. 什么是链文章伊始,先让我们了解这个最基本的概念,什么是链。我给链下了这样的定义:1. 链是一系列节点的集合。2. 链的各节点可灵活拆分再重组。转载 2015-10-16 14:26:50 · 518 阅读 · 0 评论