设计模式_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 设计模式 >>列表
· 五种常见的 PHP 设计模式发布时间:2013-01-25
工厂模式最初在设计模式一书中,许多设计模式都鼓励使用松散耦合。要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时,就会发生问题,系统其他部分——您曾认为完全不相关的部分中也有可能出现级联破坏。该问题在于紧密耦合。系统某个部分中的函数和类严重依赖于系统的其他部分中函数和类的行为和结构。您需要一组模式,使这些类能够相互通信,但不希望将它们紧密绑定在一起,以避免出现联锁。在大型系统中,许多代码依赖于少数几个关键类。需要更改这些类时,可能会出现困难。例如... 查看全文
在面向对象的编程中,如何产生一个对象呢?即使初学面向对象语言(比如C++、Java、PHP等)的程序员也知道,最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。当我们使用new操作符的时候,系统默认执行类的构造函数,然后为我们生产一个对象。那么,有没有不使用new操作符就可以创建对象的方式呢?或者说,我们在某些情况下,是不是需要寻找另外一种创建对象的方式呢?那我们先看看如果直接用new操作符来创建对象会带来一些什么样的问题... 查看全文
在上一章中,我们介绍了PHP设计模式里面的工厂模式。工厂模式是一个可以批量创建对象实例的模式,但是有时候我们经常会遇到一个与此问题相反的场景,不需要创建很多的各种各样的对象,我们需要的是,只创建几个对象,很多情况下是只需要一个对象,然后在以后的程序中持续使用此对象。例如,在CMS或者其它类似的管理系统中,经常使用到的数据库连接资源,这个资源只需要在程序启动的时候创建出来,并对其进行初始化,当程序结束的时候,断开数据库连接,将此资源销毁并回收。数据库连接通常是很消息资源的... 查看全文
声明:本文只为方便我个人查阅和理解,详细的分析以及源代码请移步原作者的博客http://chjavach.iteye.com/importjava.util.HashMap;importjava.util.Map;/**考虑一个投票的应用:*一个用户只能投一票,若一个用户反复投票,而且投票次数超过5,则认为是恶意刷票,撤消投票记录并取消投票资格*若超过8次,则加入黑名单并禁止再使用系统*/interfaceIVoteState... 查看全文
· 设计模式--结构型--适配器发布时间:2012-10-15
适配器:当复用一个存在的类A或者创建一个复用的类,它的接口不符合你的需求,采用此模式可以不在用子类,而是面向接口的原则进行使用存在的类packagecom.adapterpattern;publicclassA{publicvoidtestA(){System.out.println("THISISTESTA");}}接口packagecom.adapterpattern;publicinterfaceTarget{publicvoidtestA();publicvoidtestB();... 查看全文
声明:本文只为方便我个人查阅和理解,详细的分析以及源代码请移步原作者的博客http://chjavach.iteye.com/importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importjava.lang.reflect.Proxy;/**下面的代码关注两种代理:*1.虚代理*2.保护代理*///订单类接口interfaceIOrder{voidsetName(Stringname)... 查看全文
声明:本文只为方便我个人查阅和理解,详细的分析以及源代码请移步原作者的博客http://chjavach.iteye.com/publicclassSingleton{}classLazySingleton{privatestaticLazySingletoninstance;publicstaticLazySingletongetInstance(){if(instance==null){instance=newLazySingleton();}returninstance;... 查看全文
设计模式(六)——抽象工厂模式感冒了几天,没写。今天继续,上次写到工厂方法模式了,总的来说,工厂方法模式还是挺简单的,这次讲的抽象工厂模式,听名字也知道应该是与工厂模式是一脉相承的,顾名思义就是将工厂模式抽象化了,是的,木有错,就是这样,实质上就是在具体产品和具体实现工厂与各自接口中间再加入了一个抽象类,这样做有什么好处?废话,没好处我闲的那什么疼要多加一层?现在不说,写完一看就知道,然后这里引入两个专业概念:产品等级,产品族。其实很好理解,先记着,用到的时候讲。我们接着上一讲的例子... 查看全文
1.名称:一个模式的名称高度概括该模式的本质,有利于该行业统一术语、便于交流使用。2.问题:描述应该在何时使用模式,解释设计问题和问题存在的前因后果,描述再怎样的环境下使用设计该模式。3.方案:描述设计的组成部分、他们之间的相互关系各自的职责和协作方式。4.效果:描述模式的应用效果及使用模式应当权衡的问题。主要效果包括使用模式对系统的灵活性、扩充性和复用性的影响。参考书籍:www.csjcbzw.comwww.cccbz.com... 查看全文
单例模式属于对象创建型模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点。对一些类来说,只有一个实例是很重要的,虽然系统中可以有许多打印机,但却只应该有一个打印机假脱机,只应该有一个文件系统和一个窗口管理器,一个数字滤波器只能有一个A/D转换器,一个会计系统只能专用于一个公司。怎样才能保证一个类只有一个实例并且这个实例易于被访问,一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象,一个更好的方法是让类自身负责保存他的唯一实例。这个类可以保证没有其他实例可以被创建... 查看全文
以前看用java实现设计模式,很是头疼,那么多的java概念融合在里面,完全影响了对模式自身的理解。实现起来也是相当麻烦。但是在ruby中,模式理解起来是那么的容易,倒是觉得使用ruby来理解设计模式挺靠谱的。先介绍一种模式-观者者模式。百度百科名片写道观察者<Observer>模式(有时又被称为发布-订阅<Publish/Subscribe>模式、模型-视图<Model/View>模式、源-收听者<Source/Listener>... 查看全文
· Java中单例设计模式的代码实现发布时间:2012-03-23
因为在Java中使用单例设计模式代码实现,遇到些问题,故Google了一下。找到下面两篇blog,有所帮助。1.【转】单例模式完全剖析2.单例模式的七种写法... 查看全文
· 非关语言: 设计模式发布时间:2012-03-06
文章来源:Gossip@caterpillar程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到Gof的著作,它最早将经典的23种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设计的人们起了莫大的影响。后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程式设计思维。这边的话将整理一些设计模式学习心得... 查看全文
· 《Head First 设计模式》读书笔记发布时间:2012-03-02
1.策略模式(Strategy)定义算法,将他们分别封装起来,让他们可以相互替换,让算法变化对客户端透明。2.观察者模式(Observer)解耦一系列对象的通知状态。定义对象之间的一对多依赖,当一端对象发生变换,通知多端。3.装饰模式(Decorator)动态将责任附加到对象上。对扩展开放,对修改封闭。4.工厂模式(Factory)工厂方法:定义一个创建对象的接口,由子类实现这个接口决定怎样创建具体类。工厂方法把对象的创建延迟到子类。抽象工厂:定义一个接口,用于创建相关或依赖对象的家族... 查看全文
这是一个简单的MVC设计模式实现的登陆程序.先实现DAO;vo:packageorg.mvcdemo.vo;publicclassUser{privateStringuserid;privateStringname;privateStringpassword;publicvoidsetUserId(Stringuserid){this.userid=userid;}publicvoidsetName(Stringname){this.name=name;... 查看全文
· 设计模式之单例模式发布时间:2012-02-07
1.单例模式是一种创建模式,用来创建类的单个实例。单例模式的实现一般有以下规则:a.私有化构造方法b.类持有对自身的引用c.通过一个静态方法向外界提供这个实例2.直接创建方式publicclassManager{privatestaticfinalManagermgr=newManager();privateManager(){}publicstaticManagergetInstance(){returnmgr;}}3.延迟创建方式publicclassManager... 查看全文
· 设计模式--命令模式发布时间:2012-02-02
很久没有写模式的文章了,今天发个设计模式中的命令模式的。模式概述归类:操作性模式目标:将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化实现方法:把请求封装在对象中,把请求调用变为对象的调用。可以想管理对象一样调用,在时机和环境适合时进行调用。特点:命令模式可以良好将请求进行封装,参数化,达到良好的底层封装,复用性,并且方便模块间的解耦,可对请求进行序列化,便于日志处理,以及撤销重做等。这个是我们所用的命令类的接口,一系列命令都需要实现这个类。packageCommand... 查看全文
· 漫谈设计模式---策略模式发布时间:2012-01-10
设计模式,我一直把设计模式想象成兵法,精妙的兵法可以结构化的、优雅的组织代码。以一种聪明的方式去实现功能,并且具有极强的可维护性。说设计模式应该先从软件设计的思想说起,比如开闭原则,开:对扩展开放;闭:对修改关闭。这就需要什么呢?把不变的部分抽象出来并进行封装。软件设计还有一个原则叫做面向接口编程。接口是什么,这是我第一个想谈的东西,算是我想到所有东西的起点。接口,用书里的话来说就是一个标准,定义好这个标准之后,类库和客户端程序员就可以按照这个标准来进行开发,而不必关心实现的细节... 查看全文
· 漫谈设计模式---策略模式发布时间:2012-01-10
设计模式,我一直把设计模式想象成兵法,精妙的兵法可以结构化的、优雅的组织代码。以一种聪明的方式去实现功能,并且具有极强的可维护性。说设计模式应该先从软件设计的思想说起,比如开闭原则,开:对扩展开放;闭:对修改关闭。这就需要什么呢?把不变的部分抽象出来并进行封装。软件设计还有一个原则叫做面向接口编程。接口是什么,这是我第一个想谈的东西,算是我想到所有东西的起点。接口,用书里的话来说就是一个标准,定义好这个标准之后,类库和客户端程序员就可以按照这个标准来进行开发,而不必关心实现的细节... 查看全文
· 漫谈设计模式---策略模式发布时间:2012-01-10
设计模式,我一直把设计模式想象成兵法,精妙的兵法可以结构化的、优雅的组织代码。以一种聪明的方式去实现功能,并且具有极强的可维护性。说设计模式应该先从软件设计的思想说起,比如开闭原则,开:对扩展开放;闭:对修改关闭。这就需要什么呢?把不变的部分抽象出来并进行封装。软件设计还有一个原则叫做面向接口编程。接口是什么,这是我第一个想谈的东西,算是我想到所有东西的起点。接口,用书里的话来说就是一个标准,定义好这个标准之后,类库和客户端程序员就可以按照这个标准来进行开发,而不必关心实现的细节... 查看全文