设计模式
文章平均质量分 70
Code-X
我挥舞着键盘和本子,发誓要把世界写个明明白白!
展开
-
Head First设计模式学习笔记-------(3)装饰者模式
在本章你将学到如何使用对象组合方式,做到在运行时装饰类。今天我们项目例子是一家咖啡店,让我们先来看看这个项目的类图吧。购买咖啡时,也可以加入各种调料,服务员会根据加入的调料收取不同的费用,所以订单系统必须考虑到这些调料部分。让我们来看一下下面这种设计结构。是不是看了上面这个结构,虽然不知道怎么样,但是总感觉有什么问题对吧,让我们来看看上面这个结构存在原创 2017-02-28 12:07:37 · 359 阅读 · 0 评论 -
Head First设计模式学习笔记-------(13)代理模式
今天我们就要讲一个规模比较大的模式--------------代理模式因为代理模式内容比较多,所以分多几章讲。还记得我们上一章接的项目吗,CEO对我们的产品很满意,希望让我们加入一个远程监控糖果机的功能,让我们来讨论下怎么完成这个工作吧。这个时候远程代理就排上用场了,然我们先初步了解下代理的内容吧。让我们先看看远程方法如何工作。代理模式:原创 2017-03-14 20:45:26 · 538 阅读 · 0 评论 -
Head First设计模式学习笔记-------(12)状态模式
我们今天开门见山吧,我们又接到了一个新的项目,让我们看看这次的项目是什么吧对于大家学了熟练的开发技巧,看到这么一个项目,是不是内心第一个想法就是------真TM简单。public class GumballMachine { final static int SOLD_OUT = 0; final static int NO_QUARTER = 1; fi原创 2017-03-11 16:26:47 · 1193 阅读 · 0 评论 -
Head First设计模式学习笔记-------(11)组合模式
还记得我们上一章讲了迭代器模式吗。今天我们说的模式会和迭代器模式一起运用。我们上一章说的例子是餐厅和煎饼屋合并了,如果同时咖啡厅也合并了过来,餐厅的下面又多出了一个甜品菜单,那么问题就复杂了。我们要从新设计一下改怎么解决这个问题了我也就不卖关子了,这个时候,一个新的模式就发挥除了他的作用---------------组合模式组合模式:允许你将对象组合成树形结构来表现“整体/原创 2017-03-11 15:11:07 · 396 阅读 · 0 评论 -
Head First设计模式学习笔记-------(10)迭代器模式
听说对象村餐厅和对象村煎饼屋合并了,但是好像出现了一点小问题。因为他们的数据存储类型不同,所以要遍历他们的时候,循环就需要多次,如果再加入一些新的东西,又要改变代码,这会显得很麻烦,怎么办呢,想必大家都只要有一个东西叫做迭代器吧。让我们手动写一个迭代器接口看看吧。MenuItem类:public class MenuItem { St原创 2017-03-10 20:45:29 · 328 阅读 · 0 评论 -
Head First设计模式学习笔记-------(9)模板方法模式
今天我们讲的模式,在平时运用过程中十分常见,那这个模式是什么呢,那就是模板方法模式。让我们先来看一个简单的例子吧。是不是感觉咖啡冲泡和茶冲泡的过程非常相似,如果设计这两个类,是不是也大致相同,那么我们可以一个超类,把相同的方法放在超类里面。如果这样设计,子类中需要自己实现的两个方法虽然不一样,但是也挺相似的,都可以看成是冲泡和添加调料,那么我们把这两个方法抽象到超类中去原创 2017-03-10 15:43:41 · 351 阅读 · 0 评论 -
Head First设计模式学习笔记-------(8)外观模式
今天我们介绍一个比较好理解的模式------------外观模式当你需要设计下面这么多类的时候:我们可以给这个系统设计一个外观:外观类:public class HomeTheaterFacade { Amplifier amp; Tuner tuner; DvdPlayer dvd; CdPlayer cd; Project原创 2017-03-09 13:11:20 · 339 阅读 · 0 评论 -
Head First设计模式学习笔记-------(2)观察者模式
上一章我们讲了策略模式,这一章我们说一个新的模式--------------------观察者模式这次我们通过一个项目来了解一下这个模式,首先我们先看一下这次的项目合约。 如果我们接受这个项目,那么我们的工作就是建立一个应用,利用WeatherData对象获取数据,并更新三个布告板:目前状况,气象统计和天气预报。在开始写代码之原创 2017-02-26 14:09:22 · 323 阅读 · 0 评论 -
Head First设计模式学习笔记-------(7)适配器模式
今天我们说的是适配器模式,再开始之前,让我们看一个图片。现在对适配器大致有个概念了吧,好记得第一章我们说到的鸭子例子吗,今天我们用鸭子适配成火鸡。Duck接口:public interface Duck { public void quack(); public void fly();}绿头鸭是鸭子的子类:public class MallardDuck原创 2017-03-08 18:34:39 · 306 阅读 · 0 评论 -
Head First设计模式学习笔记-------(1)策略模式
OO基础:首先需要了解多态的用法,继承就像按契约进行设计,封装是如何运用的。OO原则:设计原则(1):找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。(把会变化的部分取出并“封装”起来,好让其他部分不会受到影响。)好处:代码变化引起的不经意后果变少,系统变得更有弹性。 设计原则(2)原创 2017-02-24 15:47:53 · 814 阅读 · 0 评论 -
Head First设计模式学习笔记-------(6)命令模式
今天,我们又接到了一个棘手的项目。让我们来看看项目要求吧。让我们看看他们发过来的光盘里的类和遥控器的模型吧如果直接设计这样一个程序,问题就非常大了,我们需要把“动作的请求者”从“动作的执行者”对象中解耦出来,什么意思呢?让我们看一个之前讲到过的餐厅的例子吧如同这张图里面说描述,女招待员不需要知道订单上有什么,需要怎么完成,只要把订单放在柜台然后调用o原创 2017-03-03 15:16:55 · 363 阅读 · 0 评论 -
Head First设计模式学习笔记-------(5)单体模式
这回我们说的是单体模式。单体模式有什么好讲的?不就是只有一个实例化对象吗?难道还有什么吗?的确,单体模式就是创建一个独一无二的对象。但是,其实对象只有一个,在实现过程中还是会遇到许许多多的问题的。接下来让我们看看这个模式吧。我们这回开门见山,直接来看下一个单间模式的实现吧:public class Singleton { private static Singleton u原创 2017-03-03 10:58:30 · 287 阅读 · 0 评论 -
Head First设计模式学习笔记-------(4.2)抽象工厂模式
在上一章我们讲了工厂模式中的一种,工厂方法模式。这一章我们将要说另外一种模式,那就是抽象工厂模式。刚开始先给大家介绍一种新的设计原则:要依赖抽象,不要依赖具体类。这个设计原则还有自己的名字---------依赖倒置原则是不是感觉这个名字不是特别理解,倒置?哪里倒置了。在依赖倒置原则中,倒置指的是和一般OO设计的思考方式完全相反,一般OO设计是底层组件依赖高层组件,高层组件依赖相同的原创 2017-03-02 17:03:01 · 414 阅读 · 0 评论 -
Head First设计模式学习笔记-------(4.1)工厂模式
这一章将给大家带来一个有趣的模式------工厂模式开始先给大家看一个简单的例子:如果按照上面的设计方式,那么当你需要修改比萨类型时,就需要修改这个文件的代码了,但是你发现,下面的比萨处理方式是不会改变的,那能不能把下面部分的代码分离出来呢,我们来试试看。我们把分离出来的代码生成一个新的对象,这个新对象就被称为“工厂”,工厂处理创建对象的细节。下面我们来看看原创 2017-02-28 20:53:58 · 350 阅读 · 0 评论 -
Head First设计模式学习笔记-------(14)复合模式
终于到了我们的复合模式了。今天我们要说的就是一个大家应该都听说过的一个东西----------MVC相比大家对MVC都不陌生吧,那就让我们来认识下什么是MVC吧然我们利用我们学过的模式技术来重新看待一下MVC吧没错,MVC里面就运用了我们之前学过的策略模式,组合模式和观察者模式什么?你在java web里也看到过MVC模式?没错,原创 2017-03-15 19:09:26 · 590 阅读 · 0 评论