
设计模式
文章平均质量分 93
菜鸟--小新
知识不是有用才学,而是学了才有用。
展开
-
设计模式读书笔记-----简单工厂模式
在设计原则中有这样一句话“我们应该针对接口编程,而不是正对实现编程”。但是我们还是在一直使用new关键字来创建一个对象,这不就是在针对实现编程么? 针对接口编程,可以隔离掉以后系统可能发生的一大堆改变。入股代码是针对接口而写,那么可以通过多态,它可以与任何新类实现该接口。但是,当代码使用一大堆的具体类时,等于是自找麻烦,因为一旦加入新的具体类,就必须要改变代码。在这里我们希望转载 2017-09-29 09:47:59 · 235 阅读 · 0 评论 -
设计模式读书笔记-----策略模式
首先我们需要知道策略模式与状态模式是如此的相似,就犹如一对双胞胎一样。只不过状态模式是通过改变对象内部的状态来帮助对象控制自己的行为,而策略模式则是围绕可以互换的算法来创建成功业务的。两者都可用于解决同一个问题:带有大量的if..else…等条件判断语句来进行选择的(小弟初学,不知这样理解是否有误??有误望指出…)。 在我们的生活中我们可以通过很多种不同的方式来完成一件事情,这里原创 2017-10-02 19:23:28 · 298 阅读 · 0 评论 -
设计模式读书笔记-----代理模式
在我们实际生活中代理情况无处不在!你在淘宝上面买东西,你使用支付宝平台支付,卖家请物流公司发货、你请朋友帮你拿包裹,在这个过程汇总支付宝、物流公司、你朋友都扮演者“第三者”的角色在帮你完成物品的购买,这里的第三者我们可以将其称之为代理者。 所谓代理就通过引用一个新的对象来实现对真实对象的操作或者将新的对象当做真实对象的一个替身,这种实现的机制就是代理模式,通过引用代理对象来访问真原创 2017-10-02 11:54:02 · 237 阅读 · 0 评论 -
设计模式读书笔记-----状态模式
在介绍状态模式之前,我们先来看这样一个实例:你公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上。下图是他们系统的主要工作(够简单)。 当你第一眼看到这个系统的时候你就看出来了这是一个状态图,每个框框都代表了房间的状态,箭头表示房间状态的转换。分析如下:房间有三个状态:空闲、已预订、已入住,状态与状态之间可以根据客户的动作来进行转换。定义每个状态的值。原创 2017-10-02 11:21:23 · 314 阅读 · 0 评论 -
设计模式读书笔记-----模板方法模式
首先我们先来看两个例子:冲咖啡和泡茶。冲咖啡和泡茶的基本流程如下: 所以用代码来创建如下: 咖啡:Caffee.java 1 public class Coffee { 2 void prepareRecipe(){ 3 boilWater(); 4 brewCoffeeGrinds();原创 2017-09-30 20:13:39 · 455 阅读 · 0 评论 -
设计模式读书笔记-----迭代器模式
你项目组接到一个项目:对电视机的电视频道、电影和收音机菜单进行统一管理,建立一个统一的菜单管理界面,能够看到所有的电视界面、电影界面和收音机频道。你有三个手下:小李子、小杏子、小安子,他们分别就每个模块做开发工作,看他们都做了哪些工作。 这是主菜单JavaBean,用于显示每个模块的菜单。public class MenuItem { private Stri转载 2017-10-01 20:48:22 · 308 阅读 · 0 评论 -
设计模式读书笔记-----组合模式
我们对于这个图片肯定会非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。我们可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以是叶子对象。但是由于容器对象和叶子对象在功能上面的区别,使得我们在使用的过程中必须要原创 2017-10-02 09:20:37 · 244 阅读 · 0 评论 -
设计模式读书笔记-----外观模式
前面介绍的适配器模式(设计模式读书笔记-----适配器模式)讲的是如何将一个接口转换成客户所需要的另一个接口,它的目的在于解决接口的不兼容性问题。现在这里有这样一个模式,它的目的在于如何简化接口,它可以将多个类的复杂的一切隐藏在背后,只显露出一个干净美观的外观。 晚上睡觉之前,你总是喜欢看电视,在你进入卧室的时候你需要完成以下几个步原创 2017-09-30 11:00:21 · 400 阅读 · 0 评论 -
设计模式读书笔记---观察者模式
观察者模式 一、基本定义 何谓观察者模式?观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。 在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以么可以根据需要增加和删除观察者,使得系统更原创 2017-09-25 22:29:47 · 342 阅读 · 0 评论 -
设计模式读书笔记-----装饰者模式
我们都知道,可以使用两种方式给一个类或者对象添加行为。 一是使用继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。 二是使用关联。组合即将一个对象嵌入到另一个对象中,由另一个对象来决定是否引用该对原创 2017-09-25 22:31:10 · 311 阅读 · 0 评论 -
设计模式读书笔记-----适配器模式
假如我们又这样软件系统,我们希望它能够和一个新的库搭配使用,但是这个库所提供的接口与我们的软件系统不兼容,我们不想改变现有代码就能解决这个问题,怎么办?这个时候我们就需要将这个新的库接口转换成我们所需要的接口,这就是适配器模式设计动机。 一、模式定义 何谓适配器模式?适配器模式就是将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可原创 2017-09-30 10:23:37 · 327 阅读 · 0 评论 -
设计模式读书笔记-----抽象工厂模式
在工厂方法模式中,我们使用一个工厂创建一个产品,也就是说一个具体的工厂对应一个具体的产品。但是有时候我们需要一个工厂能够提供多个产品对象,而不是单一的对象,这个时候我们就需要使用抽象工厂模式。 在讲解抽象工厂模式之前,我们需要厘清两个概念: 产品等级结构。产品的等级结构也就是产品的继承结构。例如一个为空调的抽象类,它有海尔空调、格力空调、美的空调等一系列原创 2017-09-30 09:35:08 · 303 阅读 · 0 评论 -
设计模式读书笔记-----单例模式
有时候某些对象我们只需要一个,如:线程池、缓存、对话框等等,对于这类对象我们只能有一个实例,如果我们制造出多个实例,就会导致很多问题产生。 但是我们怎样才能保证一个类只有一个实例并且能够便于访问?这里我们想到了全局变量,全局变量确实是可以保证该类可以随时访问,但是它很难解决只有一个实例问题。最好的办法就是让该自身来负责保存它的唯一实例。这个类必须要保证没有其他类来创建原创 2017-09-30 09:27:39 · 297 阅读 · 0 评论 -
设计模式读书笔记-----命令模式
在开发过程中,我可能会需要向某些对象发送一些请求,但是我们不知请求的具体接收者是谁,也不知道被请求的操作是那个,我们只知道在程序运行中指定具体的请求接收者即可。打个比方,电视遥控器,我们只需要知道按那个按钮能够打开电视、关闭电视和换台即可,并不需要知道是怎么开电视、关电视和换台的。对于这种情况,我们可以采用命令模式来进行设计。 一、基本定义原创 2017-09-29 11:27:59 · 337 阅读 · 0 评论 -
设计模式读书笔记-----工厂方法模式
一、问题 在前一章《设计模式读书笔记-----简单工厂模式》中通过披萨的实例介绍了简单工厂模式。在披萨实例中,如果我想根据地域的不同生转载 2017-09-29 10:06:23 · 297 阅读 · 0 评论 -
生产消费设计模式
生产消费模式在实际的软件开发过程中,经常会碰到如下场景: 某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象的成为生产者;而处理数据的模块,就成为消费者。单单抽象出生产者和消费者,还不够算上是生产者/消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介(类似于商店,生产者生产完供货给商原创 2017-11-04 14:13:46 · 431 阅读 · 0 评论