设计模式
文章平均质量分 84
君临丶天下
一切皆有可能!
展开
-
设计模式系列(九)命令模式(Command Pattern)
设计模式系列(九)命令模式(Command Pattern) 命令模式是将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,命令模式也支持可撤销的操作。命令模式将行为请求者与行为执行者解耦,从而实现了松耦合的原则。例如:去餐厅点餐的时候,顾客只负责点餐,然后交给服务员,服务员将订单交给厨师去做,最后顾客开始享用美味的饭菜,但是整个过程顾客只关心自己点了什么,而不关原创 2015-12-10 20:10:51 · 988 阅读 · 0 评论 -
设计模式系列(八)单例模式(Singleton Pattern)
设计模式系列(八)单例模式(Singleton Pattern) 单例模式就是确保一个类只有一个实例,并提供一个全局的访问点。具体来看,就是指定义的某个类,在程序运行期间,只允许有一个实例对象,即在内存中仅仅有一块内存用来存储这个类的唯一的实例对象,程序运行期间不允许出现第二个该类的实例对象。 很多会问,为什么定义了一个类却只实例化一个对象。这个主要是因为,有时原创 2015-12-07 11:28:18 · 901 阅读 · 0 评论 -
设计模式系列(七)简单工厂模式、工厂方法模式和抽象工厂模式对比
设计模式系列(七)简单工厂模式、工厂方法模式和抽象工厂模式对比 在前面的三篇文章中,依次讲解了简单工厂模式、工厂方法模式和抽象工厂模式,这篇文章主要对其进行简单的对比和概括,详细部分大家可以参考前三篇文章。 简单工厂模式:点击打开链接 工厂方法模式:点击打开链接 抽象工厂模式:点击打开链接 下面我们来总体看一下这三个模式的例原创 2015-12-05 13:16:19 · 817 阅读 · 0 评论 -
设计模式系列(三)装饰者模式(Decorator Pattern)
设计模式系列(三)装饰者模式(Decorator Pattern) 装饰者模式是指动态地将责任附加到对象上,而不必改变原类文件。对于扩展功能,装饰者模式提供了继承以外的另一种扩展对象功能的方式,不过装饰者模式比继承更加具有弹性。装饰者模式允许行为可以被扩展,而无须修改现有的代码。它使用组合和委托的方式来实现。 装饰者模式的设计原则是:开放-关闭原则,即对扩展开放原创 2015-12-01 21:18:10 · 699 阅读 · 0 评论 -
设计模式系列(四)简单工厂模式(Simple Factory Pattern/Static Factory Method)
设计模式系列(四)简单工厂模式(Simple Factory Pattern/Static Factory Method) 简单工厂模式又被成为静态工厂方法,所以其外文名一般是Static Factory Method。其属于创建型模式,本质上并不属于23种GOF设计模式之一,这种模式可以称之为一种编程习惯,算是一种比较良好的设计习惯。那么什么是简单工厂设计模式呢?从概念上来原创 2015-12-04 09:56:16 · 934 阅读 · 0 评论 -
设计模式系列(六)抽象工厂模式(Abstract Factory Pattern)
设计模式系列(五)抽象工厂模式(Abstract Factory Pattern) 抽象工厂模式原创 2015-12-04 16:47:48 · 834 阅读 · 0 评论 -
设计模式系列(五)工厂方法模式(Factory Method Pattern)
设计模式系列(五)工厂方法模式(Factory Method Pattern)原创 2015-12-04 16:10:31 · 836 阅读 · 0 评论 -
设计模式系列(二)观察者模式(Observer Pattern)
设计模式系列(二)观察者模式 观察者模式是指在对象之间定义一对多的依赖,这样一来,当一个对象改变状态时,依赖它的对象都会收到通知,并自动更新,这里有主题和观察者之分,一般也可以称为发布/订阅模式。最简单的例子就是订阅报纸,比如说自己作为观察者,订阅了"人民日报"这个主题,那么当人民日报出新的报纸的时候就会及时送到自己即观察者的手中。 观察者模式的实现方法有很多种,一原创 2015-12-01 17:33:52 · 740 阅读 · 0 评论 -
设计模式系列(一)策略模式(Strategy Pattern)
设计模式系列(一)策略模式 设计模式作为一种经验的总结,只要使用恰当可以帮助我们解决很多问题,尤其是实现代码的复用和扩展。现在先来看看第一种设计模式,即策略模式(Pattern:Strategy)。 策略模式是指定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 (1)优点:可以动态地改变对象的行为,主要是通过组合和多原创 2015-12-01 17:23:17 · 1024 阅读 · 0 评论 -
设计模式系列(十三)迭代器模式(Iterator Pattern)
设计模式系列(十三)迭代器模式(Iterator Pattern) 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而不暴露器内部的表示。也就是说,迭代器模式让我们能游走于聚合内的每一个元素,而又不暴露其内部的表示,把游走的任务放在迭代器上,而不是聚合上,这样就简化了聚合的接口和实现,也让责任各得其所。 学过面向对象编程语言的朋友一定对迭代器这个设计深有原创 2015-12-20 20:40:40 · 1069 阅读 · 0 评论 -
用MyEclipse将java文件转换成UML类图
用MyEclipse将java文件转换成UML类图 在学习设计模式或者与别人交互设计模式的思想时,UML类图的制作是必不可少的。通常,我们会直接绘制UML类图,对于学生来说,通用的工具就是微软的Visio,这个工具想必大家经常用来画各种图,流程图、网络图、数据流图,当然可以画UML类图,使用起来十分方便,不过Visio的鸡肋之处就是不支持JAVA的UML类图,估计是微软自家开发,原创 2015-11-26 11:40:11 · 22712 阅读 · 3 评论 -
用EA(Enterprise Architect)将C++的".h"文件转换成UML类图
如何使用EA(Enterprise Architect)工具使C++程序生成UML类图 本篇文章主要针对于C++程序的UML类图生成方法介绍。大家可以在网上先搜索Enterprise Architect工具,下载后安装使用,这个工具很强大,不过本文只介绍最简单的UML类图生成方法,仅针对于C++的.h文件,过程也很简单。(1)点击Creat a New Project原创 2015-12-01 11:27:08 · 7649 阅读 · 1 评论 -
设计模式系列(十二)模板方法模式(Template Method Pattern)
设计模式系列(十二)模板方法模式(Template Method Pattern) 模板方法模式是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 在最开始先来说一个和模板方法模式关系比较紧密的原则:“好莱坞原则”,即别调用我们,我们会调用你。形象的来说就是,别打电话给我,在我需要原创 2015-12-13 16:41:04 · 967 阅读 · 0 评论 -
设计模式系列(十一)外观模式(Facade Pattern)
设计模式系列(十一)外观模式(Facade Pattern) 外观模式提供了统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。外观模式的意图是简化接口,让用户更加方便使用。举例来说,如果在家里布置了一个家庭影院,包括电影显示器,遥控器,爆米花机器等,当你想要享受一场电影的时候,你需要打开显示器、操作遥控器的一系列按钮、打开爆米花机器等,也就是说享原创 2015-12-11 20:35:13 · 692 阅读 · 0 评论 -
设计模式系列(十)适配器模式(Adapter Pattern)
设计模式系列(十)适配器模式(Adapter Pattern) 适配器模式是将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。适配器实现了客户与具体实现的解耦,简单来说,适配器模式就是改变接口以符合客户的期望。例如:我们生活中常见的插座的适配器、无线网卡适配器、电源适配器等,这些都是用来进行不同接口的转换,更具体的来说就是我们手机充电的时候可能只需原创 2015-12-11 19:45:42 · 824 阅读 · 0 评论 -
设计模式系列(十四)组合模式(Composite Pattern)
设计模式系列(十四)组合模式(Composite Pattern) 组合模式原创 2015-12-22 21:07:01 · 994 阅读 · 0 评论