设计模式
涛涛之海
学好编程,成为一名高级工程师
展开
-
设计模式之认识
什么是设计模式 简单说就是套路,正规说就是针对某一类问题的最佳解决方案,而且已经被成功的应用到许多系统的设计中,解决了某种特定的场景中发生的问题,即一个设计模式是从许多优秀的软件系统中总结出成功的,可复用的设计方案。 设计模式的必要性 当设计某个系统,并确认所遇到的问题刚好适合使用某个设计模式时,就考虑应用该模式到系统设计中,使设计的系统易维护,可扩展性强,复用性好。学习设计模式,不仅可以帮...原创 2018-03-20 16:10:33 · 246 阅读 · 0 评论 -
单例模式之认识
什么是单例模式 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。 如何实现 应用场景 一些资源管理器常常设计成单例模式。 在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印作业同时输出到打...原创 2018-03-24 15:48:30 · 193 阅读 · 0 评论 -
代理模式之认识
什么是代理 代理模式又叫Proxy模式(英文)。所谓的代理,就是一个人或者一个机构代替另一个人或者另一个机构去做一些事情。(类似于中介或者代理商)。 简单点实例(Windows操作系统里面的例子:快捷方式) 如何实现 (1)结构图 Subject: 抽象主题角色 Proxy: 代理主题角色 RealSubject: 真实主题角色 (2)静态代理具体代码 public in...原创 2018-03-20 17:26:57 · 193 阅读 · 0 评论 -
简单工厂模式
简介 简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)模式。 简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例。 简单工厂模式是一种对象创建型模式 (可参考 设计模式 创建型模式)。但是简单工厂模式不属于23种Gof设计模式之一。 实例 如何实现一个具有加减乘除基本功能的计算器? 对于这四种运算来...转载 2018-03-27 11:19:36 · 159 阅读 · 0 评论 -
工厂方法模式
目录简介结构动机要点实例 Creator 角色 ConcreteCreator 角色 Client 角色 C++版工厂方法模式简单工厂模式 vs. 工厂方法模式推荐阅读参考资料简介工厂方法模式 (Factory Method)定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其他子类。 工厂模式是一种类创建型模式 (可参考 设计模式 创建型模式...转载 2018-03-27 11:34:00 · 144 阅读 · 0 评论 -
策略模式
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。 类型:行为类模式 类图: 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——模版方法模式。 对照类图可以看到,策略模式与模版方法模式的区别仅仅是多了一个单独的封装类Context,它与模版方...转载 2018-05-04 10:28:15 · 145 阅读 · 0 评论 -
模板方法模式
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。 类型:行为类模式 类图: 事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印,打印功能好实现,排序就有点...转载 2018-05-04 10:42:12 · 124 阅读 · 0 评论 -
观察者模式
定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 类型:行为类模式 类图: 在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。 比如,我们要设计一个右键菜单的功能,只要在软件的有效区域内点击鼠标右键,就会弹出一个菜单; 再比如,我们要设计一个...转载 2018-05-04 10:52:11 · 122 阅读 · 0 评论