合集-设计模式

摘要:1 什么是设计模式设计模式是对在软件设计过程中重复出现的问题提出了一种比较好的解决方案。正如一位专家所说:设计模式是对程序设计人员经常遇到的设计问题的可再现的解决方案(The Smalltalk Companion)。GOF设计模式通常被认为是其他设计模式的基础,随着业务复杂度的增大,会不断涌现新的设计模式,而这些新的设计模式一般会以GOF模式理论为参照。2 为什么要学习设计模式从个人职业规划来考虑。一位软件开发工程师随着编码量的增加,开发经验的增加,软件理论理解的加深,会不由自主地想一些方法或者捷径,来提高自己的生产率,而不是面对重复的问题做相同的工作,当你有这种想法的时候,就需要开始学习设 阅读全文
posted @ 2010-03-15 16:37 张占岭 阅读(664) 评论(0) 推荐(1) 编辑
摘要:计算机中的设计模式,在生活中我是这样理解的:做其它事情也是这样的,单一责任,自己负责自己的;开放与封闭,对你以前做的不要在原来的地方修改,应该在新的地方去扩展;面对问题时的规则性,在事之前先制订原则,按着原则去办事,让你的效率更高,更清晰;里氏代换原则,在一个产品中,比如橡皮与修正液,前者是后者的鼻祖,如果后者想要代替前都,必须实现前者的所有功能,并要有自己的特色。 阅读全文
posted @ 2010-03-15 16:50 张占岭 阅读(268) 评论(0) 推荐(0) 编辑
摘要:返回目录在简单工厂的讲解中,出现了很多问题,我们对象统一行为抽象出一个接口(或者抽象类)之后,再根据你传入的类型进行创建实例,这只适合于你有固定行为的场合,当你要实现接口的类型处于不定数时,则不适合使用简单工厂模式,而应该用工厂方法了。适用场合:子类有统一的操作行为子类的数量不固定,随时可能有新的功... 阅读全文
posted @ 2012-06-25 17:01 张占岭 阅读(2375) 评论(5) 推荐(5) 编辑
摘要:返回目录 简单工厂模式Simple Factory根据提供给它的数据,返回一个类的实例。通常它返回的类都有一个公共的父类(或者接口对象)。简单工厂的作用是实例化对象,而不需要客户了解这个对象属于哪个具体的子类。简单工厂实例化的类具有相同的接口或者基类,在子类比较固定并不需要扩展时,可以使用简单工... 阅读全文
posted @ 2012-06-24 14:38 张占岭 阅读(7541) 评论(7) 推荐(1) 编辑
摘要:返回目录单件模式(Singleton)要求一个类有且仅有一个实例,并且提供了一个全局的访问点。从概念上来研究一下它的实现,不考虑线程安全 1 public sealed class Singlton 2 { 3 static Singlton instance = null; 4 p... 阅读全文
posted @ 2012-06-24 13:35 张占岭 阅读(4843) 评论(6) 推荐(6) 编辑
摘要:委托和接口都允许类设计器分离类型声明和实现。 任何类或结构都能继承和实现给定的接口。 可以为任何类上的方法创建委托,前提是该方法符合委托的方法签名。 接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。 既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?在以下情况下,请使用委托:当使用事件设计模式时。当封装静态方法可取时。当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。需要方便的组合。当类可能需要该方法的多个实现时。在以下情况下,请使用接口:当存在一组可能被调用的相关方法时。当类只需要方法的单个实现时。当使用接口的类想要将该接口强制转换为其他接口或类类型 阅读全文
posted @ 2011-05-20 18:02 张占岭 阅读(423) 评论(0) 推荐(0) 编辑
摘要:返回目录策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。而对于客户端(UI)来说,可以通过IOC再配合工厂模块,实现动态策略的切换,策略模块通常于一个抽象策略对象(interface or abstract class),多个具体策略对象(implement class... 阅读全文
posted @ 2014-08-07 09:29 张占岭 阅读(1502) 评论(0) 推荐(0) 编辑
摘要:返回目录 装饰器模式,也叫又叫装饰者模式,顾名思义,将一个对象进行包裹,包装,让它变成一个比较满意的对象,这种模式在我们平时项目开发中,经常会用到,事实上,它是处理问题的一种技巧,也很好的扩展了程序,让程序代码不那么死板! 何时能用到它? 1. 需要扩展一个类的功能,或给一个类添加附加职责。 2. 阅读全文
posted @ 2014-08-05 10:27 张占岭 阅读(1807) 评论(0) 推荐(0) 编辑
摘要:返回目录观察者模式,也叫发布/订阅模式(publish/subscribe),监视器模式等。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。。何时能用到它?此种模式通常被用来实现事件处理系统,例如,当一个数据仓储... 阅读全文
posted @ 2014-08-05 09:38 张占岭 阅读(3285) 评论(0) 推荐(1) 编辑
摘要:返回目录之前和大家一起谈了工厂模式和单例模式,今天来看一下另一种非常常用的模式,它就是适配器模式,第一次看到这个模式是通过“张逸”老师的“设计之道”这篇文章,在这里表adapter讲的很透彻,今天把张老师的文章拿过来,分享给大家!何时能用到它?对于一个软件生产商A来说,在过去的20年里,它们主要生产... 阅读全文
posted @ 2014-06-12 13:44 张占岭 阅读(2424) 评论(1) 推荐(2) 编辑
摘要:下面是按着我所接触的架构模式,开始一个一个的说一下 第一 标准架构 三层结构 、 第二 MVC架构 在表现层实现的一种设计模式,在这里C(控制器)是核心,它将M(模型)序列化和反序列化给View进行输出和输入(Response and Request) 第三 DDD领域驱动设计模式 它与传统的分层架 阅读全文
posted @ 2014-01-06 15:50 张占岭 阅读(10287) 评论(11) 推荐(18) 编辑
摘要:(本文不说IOC,不说设计模式,只说基础的internal关键字的实际意义)题目非常有意思,“隐藏应该隐藏的对象”,事实上,我们在做开发时,会遇到一些问题,一个功能会涉及到一些类,一些方法,而向外开放的接口往往只有一个,即一个规范,多个实现,而这些实现,是通过一个类型来区别的,如:一个加密码方法EncryptString,它会有一个类型去标示你是用md5,des,还是其它方式去做加密,而对于实现的细节,调用者不需要关心,当然这还是面向对象的原则问题。它的类型可能是个枚举: /// <summary> /// 加密类型 /// </summary> ... 阅读全文
posted @ 2013-01-31 10:27 张占岭 阅读(679) 评论(0) 推荐(7) 编辑
摘要:开发语言(Development)Java.Net云计算移动HTML JavaScriptPHP架构 & 设计(Architecture & Design)建模(Modeling)性能和可伸缩性(Scalability/Performance)领域驱动设计(DDD)面向切面 (AOP)设计模式(Patterns)安全(Security)云计算(Cloud)面向服务(SOA)过程 & 实践(Process & Practices)敏捷(Agile)领导能力(Leadership)团队协作(Collaboration)敏捷技术(Agile Techniques)方法 阅读全文
posted @ 2012-11-23 12:15 张占岭 阅读(1821) 评论(0) 推荐(2) 编辑
摘要:简介 数据传输对象(DTO),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是结合使用的数据访问对象从数据库中检索数据。 数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。 在传统的系统(企业JavaBeans)体系结构,数据传输目标服务的双重目的:第一,他们围 绕这个问题,pre-ejb实体不是序列化的;其次,他们含蓄地定义一个组装阶段,所有要使用的数据的提取和整理到数据传输目标之前返回控制[表现层]; 第三个原因是使用数据传输目标可能是某些应用层不应该能够访问底层的数据访问对象,从而改变数据。产生 Data... 阅读全文
posted @ 2012-08-17 14:27 张占岭 阅读(1338) 评论(1) 推荐(0) 编辑
摘要:责任链,我感觉对就根据需求动态的组织一些工作流程,比如完成一件事有5个步骤,而第1步,第2步,第3步它们的顺序可以在某些时候是不固定的,而这就符合责任链的范畴,我们根据需求去设计我们的这些链条,去自己指定它们的执行顺序,下面看我的一个例子。 出现的对象 抽象责任 具体责任 抽象链条 具体链条 对象的 阅读全文
posted @ 2019-11-05 14:23 张占岭 阅读(1065) 评论(0) 推荐(2) 编辑
摘要:装饰器,顾名思义,就是把一个对象的功能进行扩展,添加新的装饰,让它具有新的特性和功能,在实现生活中,有很多装饰器实现的例子,比如人类可以跑,但有一个超人它不仅可以跑,而且还可以飞,这时在不改变原对象基础上,需要为超人添加飞的动作,就可以使用装饰模式。 抽象组件 具体组件 抽象装饰器 超人的装饰器 让 阅读全文
posted @ 2019-10-31 21:40 张占岭 阅读(286) 评论(0) 推荐(0) 编辑
摘要:设计模式可以使用我们在软件开发过程中更加灵活,软件的扩展更容易,软件的耦合度更低,设计模式不是在开发中刻意去用的,而是到了什么时候用什么模式的,不能强迫的使用它,应该是自然而然的想到它。 单例模式 在23种设计模式中,单例最为简单和纯粹,也是最容易理解的,即它在软件生命周期里,只有一个实例,就是说你 阅读全文
posted @ 2019-10-31 21:33 张占岭 阅读(329) 评论(0) 推荐(0) 编辑
摘要:"回到目录" 职责链模式 它是一种设计模块,主要将操作流程与具体操作解耦,让每个操作都可以设置自己的操作流程,这对于工作流应用是一个不错的选择! 下面是官方标准的定义:责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一 阅读全文
posted @ 2018-01-10 22:32 张占岭 阅读(785) 评论(0) 推荐(0) 编辑
摘要:回到目录 这个标题够直接了吧,够坦诚了吧,也许你在项目里这三个东西都没有用到,但这三个东西在未来的两年里将成为最HOT的技术,它们不是什么框架,也不是什么设计模式,而是做为程序和环境快速部署而设计出来的,为的就是解决未来超级复杂的开发环境的部署工作,对于这三个东西,大叔最近也在研究与实践,并现时会总 阅读全文
posted @ 2017-06-21 09:24 张占岭 阅读(2451) 评论(1) 推荐(0) 编辑
摘要:返回目录 再说概念 这两个模式确实有点相似,都为了实现程序的解耦产生的,观察者一般又称发布/订阅模式,它一般是有一个主题对象,然后有多个订阅者去关注它,当它的状态发生变化时,会自动通知这些订阅者;而消费者模式类似一个缓存队列的概念,它也称为生产者/消费者模式,生产者只负责生产数据不去做处理(缓解高并 阅读全文
posted @ 2016-04-20 16:43 张占岭 阅读(4949) 评论(1) 推荐(4) 编辑

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