随笔分类 -  设计模式

摘要:在之前有接触过组合模式,那是第一次接触设计模式,觉得什么是组合模式啊?什么部分与整体。现在再来看组合模式,觉得实际上并没有那么神秘。 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。这句话什么意思呢?凡是能类似树形结构的场景,均可使 阅读全文
posted @ 2016-09-11 23:05 OKevin 阅读(816) 评论(0) 推荐(0) 编辑
摘要:代理模式,在UML类结构上很好理解, 不过在实际应用当中可能并不是很清楚代理模式应用在哪些场景里。这里给出《大话设计模式》中对代理模式应用场合的解释: 第一,远程代理,也就是为一个对象在不同地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 第二,虚拟代理,是根据需要创建开销很大的 阅读全文
posted @ 2016-09-11 15:58 OKevin 阅读(569) 评论(0) 推荐(0) 编辑
摘要:这里只简单说说装饰模式,因为对这个模式理解得还不是很透彻。暂时不能写出更深一点的内容。 什么是装饰模式呢?拟定一个场景,一个人需要穿衣打扮,我们可以写一个Person类,为它定义出N个方法,穿短袖,穿皮鞋,等等。要新增一个装饰的时候,我们在Person类里新增一个方法即可,但这违背了“方法-封闭”原 阅读全文
posted @ 2016-09-10 00:36 OKevin 阅读(488) 评论(0) 推荐(0) 编辑
摘要:单例模式,顾名思义,在程序运行时有且仅有一个实例存在。最常见的一个应用场景就是网站访问量的计数器,试想如果允许创建多个实例,那还怎么计数,这个时候就得创建有且仅有的一个实例了。如何防止程序创建多个实例呢?首先就是不能直接new。不能new那就是要将构造函数实例化,那怎么来创建实例呢?我们还是从代码着 阅读全文
posted @ 2016-09-09 00:07 OKevin 阅读(1912) 评论(0) 推荐(0) 编辑
摘要:前面我们讲了三个工厂模式,都是万变不离其宗,利用工厂模式来实例化不同的对象,虽然可能会多写一些代码,但这会为程序系统带来更方便的扩展性和尽量小的修改。 我们来从头回顾一下为什么要用工厂模式,实现一个计算器的程序,初级程序员可能立马分分钟就能写出代码来,例如: 几乎是20行的代码就实现了需求,但“合适 阅读全文
posted @ 2016-09-07 23:53 OKevin 阅读(551) 评论(1) 推荐(1) 编辑
摘要:这里又出现了一个抽象工厂模式,这个抽象工厂模式又是什么呢? 我们现在来模拟一个场景,现在用的是Mysql数据库,明天让你更换为Oracle数据库。此时,想想要做多少的改动。但我们如果用工厂模式,这会让你节省大量时间。 首先,我们用工厂方法模式来设计这个程序。 我们画出类的UML图。 IFactory 阅读全文
posted @ 2016-09-07 00:17 OKevin 阅读(5901) 评论(0) 推荐(1) 编辑
摘要:工厂方法模式,咋一看在这个计算器程序里好像反而使程序变得更加“复制”,确实代码量好像是增加了,到底有什么好处呢?我想多领会领会,必然有它存在的理由。 我们先来看看“简单工厂模式”和“工厂方法模式”的类继承关系。上篇提到的“简单工厂模式”的类继承关系如下图所示: “工厂方法模式”的类继承关系如下图所示 阅读全文
posted @ 2016-09-05 23:33 OKevin 阅读(660) 评论(0) 推荐(0) 编辑
摘要:工厂模式分三类:简单工厂模式、工厂方法模式、抽象工厂模式。 首先介绍比较简单一种工厂模式——简单工厂模式。 我们以计算器作为一个例子来说明工厂模式到底是什么。作为一个几年前大一从C语言起步的初级程序员,到现在写代码的思维还是停留在结构化编程,虽然Java学了有几年了,总是说面向对象面向对象。但是让实 阅读全文
posted @ 2016-09-04 23:29 OKevin 阅读(1035) 评论(1) 推荐(2) 编辑

点击右上角即可分享
微信分享提示