
设计模式
文章平均质量分 58
ysu108
这个作者很懒,什么都没留下…
展开
-
设计模式(三)抽象工厂模式(Abstract Factory Pattern)
Key:抽象工厂模式可以产生新的系列产品,并控制产品的生产过程。这里有必要和工厂方法这个设计模式做一些比较。工厂方法和抽象工厂并不是谁更高级,虽然听起来抽象工厂比工厂方法高级点。它们各有长处,各有短处。工厂方法在增加产品种类上比较方便,增加一个具体工厂和一个具体产品即可。而在产生系列产品上比较不方便,可能会造成类的爆炸。而抽象工厂在产生系列产品上比较方便,但是如果增加产品的种类,不得不去在修改原创 2012-07-24 14:36:17 · 1014 阅读 · 0 评论 -
设计模式总结(2014.7)
工作一年零两个月了,对设计模式的理解。使用设计模式的目的,最重要的是要让具有“可扩展性”,也就是在需求变更,或者需求增加的时候能够尽量少改动原来代码,或者不改动原来的代码只增加新的代码,从而扩展功能(这也是开闭原则吧)。最具代表性的就是在协议处理上的命令模式,需要增加一个新的协议,就增加一个新的command。但是,很容易进入一个误区,那就是过度设计,一个很简单的功能,可以使用设计模式,也可以原创 2014-07-27 17:54:27 · 646 阅读 · 0 评论 -
设计模式(九)主动对象模式
1. 用到了command与proxy模式,变成了一个更强大的模式。2. 一般的command模式是当有请求到来的时候,在主线程中(也可以是其他线程,主线程这里只表示上下文)生成一个command,然后push到命令池(并不是所有的都有命令池的,这也是主动对象不同的地方,主动对象都有单独线程,不是在当前上下文中执行),在命令池线程中执行execute方法,或者在主线程中直接调用exec原创 2014-02-12 14:12:16 · 2198 阅读 · 0 评论 -
设计模式(五)策略模式(Strategy Pattern)
Key:策略模式定义一系列的算法,将每一种算法封装起来并可以相互替换使用。策略模式定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。策略模式是处理算法不同的变体的一种行为模式,通过在抽象策略中定义算法接口或封装算法标识,实现该抽象粗略的具体子类成为一个单独的算法,即具体策略。策略模式用多个类来区分不同的行为,使用策略模式可以避免暴露复杂的原创 2012-07-27 15:21:38 · 1050 阅读 · 0 评论 -
设计模式(四)代理模式(Proxy Pattern)
key:代理模式通过提供代理来控制对象的访问。这里的“控制”我理解:一、可以用来控制对象的加载时间,在需要的时候才生成真正的对象,这样可以实现延迟加载,提高系统的效率,例如一个规模较大的系统如果一开始就全部初始化全部所需的资源,那么可能用户等待的时间很长,使得用户体验不好。这个时候可以用代理来实现快速的加载,原理可以参考下面的具体例子。二、可以控制对象的权限,在处理对象之前做一些校验身原创 2012-07-25 15:51:11 · 1165 阅读 · 0 评论 -
设计模式(二)工厂方法模式(Factory Mothod Pattern)
Key:工厂模式是为了产生任意的对象类型和控制对象的生产过程。如果只是简单的产生任意类型的对象(不同的对象对同一个接口产生多态性),那么只要用多态就可以了,但是如果还想自己定制这个类型对象的生产过程,那么就要用到这个工厂模式了。例如创建对象前进行权限的检查,或者对对象的个数进行限制,或者检查系统的性能根据情况看看是否可以产生对象。这个设计模式有一个抽象的工厂和一个抽象的产品,例如为了产生控原创 2012-07-24 09:56:13 · 1247 阅读 · 0 评论 -
设计模式(八)命令模式(Command Pattern)
这个模式特别常见。主要目的是实现发送命令者和命令执行者的耦合,发送命令的人不用关心命令是如何被执行的,典型的职责转移,只要发送一个命令以后什么的都不管了,比较典型的就是客户端软件上的按钮,一个按钮下去对应一个命令,至于后台是怎么做,做UI的人也不用关心,还有一个比较典型的就是遥控器,电视机是receiver,当按下遥控器上一个按键就是发送一个command。 三个主要的对象:comman原创 2013-05-20 15:05:08 · 777 阅读 · 0 评论 -
设计模式(七)装饰者和观察者模式
观察者模式观察者模式完美的将观察者和被观察对象分开,系统中的每个类将重点放在某一个功能上,而不是其他的方面(对象之间的交互),很好的体现了单一职责原则。观察者将自己注册到被观察者的容器中,被观察者不应该过问观察者的具体类型,而是使用观察者的接口。这样的优点是:假定程序中还有别的观察者,那么这个观察者是相同的接口即可,基于接口而不是具体的实现,这一点为程序提供了更大的灵活性。现实生活中像移动原创 2012-09-11 19:47:32 · 1396 阅读 · 0 评论 -
设计模式(一)简介
“设计模式为在某一个情景下的问题解决方案”。学习使用设计模式可以复用解决方案,而且和UML一样提供一种交流的术语。在做设计的时候有一些基本的原则:面向接口编程、多用组合少用继承、高内聚低耦合等。其实设计模式体现的也是这些原则。按照目的来划分,设计模式可以分为创建型模式、结构型模式和行为型模式三大类。创建型模式用来处理对象的创建过程;结构型设计模式用来处理类或者对象的组合;行为型模式用来对类或对象怎原创 2012-07-23 16:11:23 · 674 阅读 · 0 评论 -
设计模式(六)外观模式(Facade Pattern)
key:外观模式有效的隔离内部复杂的子系统外观模式有效的隔离了内部复杂系统和外部应用请求,封装了对内部子系统的接口调用,使得外部应用的调用变的更加方便、简单。大大降低了外部应用和内部复杂子系统之间的耦合度,为软件系统的后期维护升级提供了很好的弹性。举例如下,一个tank有很多的子系统,例如通信系统,制动系统,武器系统等复杂的子系统,如果不加以外观,那么使用的时候要生成很多的子系统的对象,然后在原创 2012-07-29 15:06:28 · 1395 阅读 · 0 评论 -
设计模式(九)访问者模式
访问者模式 访问者模式,顾名思义使用了这个模式后就可以在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升。 《设计模式》一书对于访问者模式给出的定义为:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必须条件,而且这个结构对象必须存在遍历自身各个对象的方法。这便原创 2014-10-24 15:44:22 · 644 阅读 · 0 评论