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

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 设计模式 >>列表
一、引言在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。二、观察者模式的介绍2.1观察者模式的定义从生活中的例子可以看出,只要对订阅号进行关注的客户端,如果订阅号有什么更新,就会直接推送给订阅了的用户。从中,我们就可以得出观察者模式的定义。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时... 查看全文
· 浅谈enum与单例设计模式发布时间:2014-09-04
在JDK1.5之前的单例实现方式有两种(懒汉式和饿汉式并无设计上的区别故看做一种),两者同是私有构造器,导出静态成员变量,以便调用者访问。第一种packagesingleton;publicclassSingleton{//导出全局成员publicfinalstaticSingletonINSTANCE=newSingleton();//私有构造privateSingleton(){}}私有构造器只会被调用一次,用于构建Singleton类中的INSTANCE实例,由于构造器被私有化... 查看全文
· 熔断器设计模式发布时间:2014-08-14
如果大家有印象的话,尤其是夏天,如果家里用电负载过大,比如开了很多家用电器,就会”自动跳闸”,此时电路就会断开。在以前更古老的一种方式是”保险丝”,当负载过大,或者电路发生故障或异常时,电流会不断升高,为防止升高的电流有可能损坏电路中的某些重要器件或贵重器件,烧毁电路甚至造成火灾。保险丝会在电流异常升高到一定的高度和热度的时候,自身熔断切断电流,从而起到保护电路安全运行的作用。同样,在大型的软件系统中... 查看全文
转载自:http://blog.csdn.net/top_code/article/details/8469297定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:对象创建型模式类图:Builder:生成器接口,定义创建一个Product对象所需要的各个部件的操作。ConcreteBuilder:具体的生成器实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法。Director:指导者... 查看全文
· 《Prism 5.0源码走读》 设计模式发布时间:2014-08-11
Prism或Prism构建的应用程序时会使用大量的设计模式,本文简要列举Prism相关的那些设计模式。Adapter(适配器模式):PrismLibrary主要在Region和IoCcontainer应用Adapter模式。ContentControlRegionAdapter.csItemsControlRegionAdapter.csSelectorRegionAdapter.csUnityServiceLocatorAdapter.csMefServiceLocatorAdapter... 查看全文
· Java的设计模式都有哪些发布时间:2014-08-11
Java的设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。那么java语言的设计模式都有哪些呢?下面西安达内培训(http://www.xatarena.cn)讲师就详细为大家介绍。创建型设计模式抽象工厂模式特点:创建方法返回一个可以用来创建抽象类或接口的工厂类。javax.xml.parsers.DocumentBuilderFactory#newInstance(... 查看全文
定义抽象工厂模式的实质就是提供接口来创建一系列相关或独立的对象而不指定这些对象的具体类。理解在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(熟悉的new操作符),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。在正常使用中... 查看全文
· [5]设计模式——单例模式发布时间:2014-08-01
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点安全的单例模式:/**@(#)Singleton.java2014-8-1**Copyright2014XXXX,Inc.Allrightsreserved.*/packagecom.fiberhome.singleton;/***单例对象**@authorliyan*@version2014-8-1*@since1.0*/publicclassSingleton... 查看全文
定义:软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的。个人理解:开闭原则通俗的来说就是软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等等,应该在不修改现有代码的基础上,引入新功能。开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的;开闭原则中“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。问题由来:在软件的生命周期内... 查看全文
定义:一个对象应该对其它的对象保持最少的了解。迪米特法则又称为最少知识法则,英文全称为LeastKnowledgePrinciple,简称为LKP。个人理解:迪米特法则主要目的是类间解耦,弱耦合。只有类弱耦合了后,类的复用性才会提高。问题由来:类之间的关系越密切,类之间的耦合程度越高。当一个类发改变时,耦合度越大,对另一类的影响也就越大。解决方案:尽量降低类之间的耦合度。从事编程的都知道,软件编程总的原则是低耦合、高内聚,只有这样才能提高代码的复用率,而这正是迪米特法则所要求的... 查看全文
定义:高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口;抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口。依赖倒置原则英文全称为DependenceInversionPrinciple,简称为DIP。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I... 查看全文
定义:程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换,也就是说所有引用基类的地方必须能透明地使用其子类的对象。通俗的来说,子类可以扩展父类的功能,但不能改变父类原有的功能。由来:第一次看见这个里氏替换原则的名字会觉着很奇特,根据以往的经验这一看就是外国友人首先提出的概念,然后便以她的姓命名该原则。确实是这样,它由芭芭拉·利斯科夫(BarbaraLiskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出... 查看全文
· 设计模式(1)- 工厂模式发布时间:2014-07-01
最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。听上去差不多,都是工厂模式,下面一个个介绍。首先介绍简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。有点抽象,举个例子就明白了。有一家生产处理器核的厂家,它只有一个工厂... 查看全文
· 设计模式 (创建型模式)发布时间:2014-06-27
设计模式创建型模式1.创建型模式创建型模式,包括了5种设计模式,分别是Singleton(单例模式),Factory(工厂模式),AbstractFactory(抽象工厂模式),Builder(创建者),Prototype(原型),创建型模式主要作用就是抽象了实例化过程。他们帮助一个系统独立于如何创建、组合和表示他的那些对象。一个类创建型模式使用继承改变被实例化的类。而一个对象创建型模式将实例化委托给另一个对象。2.Singleton(单例模式)单例模式的要点有三个1.这个类就能有一个实例2... 查看全文
· 王垠:解密“设计模式”发布时间:2014-06-17
有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一些“设计模式”(designpatterns)。这是一个我很早就有定论,而且经过实践检验的问题,所以想在这里做一个总结。总的来说,如果光从字面上讲,程序里总是有一些“模式”可以发掘的。因为你总是可以借鉴以前的经验,来构造新的程序。你可以把这种“经验”叫做“模式”。可是自从《设计模式》(通常叫做GoF,&ldquo... 查看全文
· Java设计模式之修饰、职责链发布时间:2014-06-09
1、修饰模式通过增加子类的方式来扩展功能,而不是通过继承具体的方式如下interfaceinter{voiddo();}Aimplementsinter{publicvoiddo(){//doSomething;}}Bimplementsinter{Aa;publicvoiddo(){//额外的功能a.do();//额外的功能}}2、职责链有一系列负责处理的类,实现相同的接口,具有大致相同的方法大致讲就是:我能处理就处理,处理不了就交给其它类来处理核心的代码就是... 查看全文
两种方式实现Java设计模式之单例模式,单例在程序应用中是非常常见的一种设计模式之一,其思想和代码实现都非常的简单,单例单例顾名思义在程序运行的过程中只会产生一个实例,接下来看看代码的实现:Coding:publicclassSingleton{privatestaticSingletoninstance=null;privateSingleton(){}//线程安全的单例模式效率高publicstaticSingletongetInstance(){if(instance==null)... 查看全文
设计模式之责任链模式(ChainofResponsibility)是Web项目中最经常用到的一个设计模式,比如是ApacheTomcat的对Encoding的处理,Struts2的拦截器,jspservlet的Filter等等,都是基于责任链模式设计的。下面直接来模拟WEB发送一个请求Request经过两个过滤链HTMLFilter过滤标签、SensitiveFilter过滤敏感词汇,经过过滤之后返回一个Response对象实例代码:publicinterfaceFilter... 查看全文
This关键字this:就代表本累的对象this代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用了本类的对象,都用this表示。-----------------------------------------------------------------------------------------------------... 查看全文
1前言看过许多关于设计模式的博客,也读过关于设计模式的书。几乎所有的介绍的开头,直接就引入了“设计模式”或者“某某模式”。设计模式到底是因什么而来?这是一个很重要的问题。孙悟空从石头缝里蹦出来,《西游记》还介绍了这个石头的来历呢。要想了解一个东西,至少有“3W”——what、why、how——是什么、为什么、怎么用。看现在大部分的文章或者书籍,重点介绍的还是&ldquo... 查看全文