设计模式
zvub
代码的搬运工。
展开
-
策略模式
写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题,本篇博客就带你详细了解策略模式。策略模式的定义和使用场景定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。分析下定义,策略模式定义和封装了一系列的算法,它们是可以相互...转载 2018-06-01 15:45:13 · 102 阅读 · 0 评论 -
观察者模式
真刀实枪之观察者模式韩非子身边的卧底到底是谁派来的“知己知彼,百战不殆;不知彼知己,一胜一负;不知己不知彼,每战必殆”那么怎样才能做到知彼呢,这个在世界都比较常见,就是安插间谍李斯和韩非子都是荀子的弟子,李斯是师兄,韩非子是师弟,若干年后,李斯成为最强诸侯秦国的上尉,致力于统一全国,于是安插间谍到各个国家,韩非子这么重量级人物,当然身边少不了间谍,韩非子做的李斯都了如指掌。用今天的技术重现当年的风...转载 2018-06-04 09:24:49 · 134 阅读 · 0 评论 -
门面模式
医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。 首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首先划...转载 2018-06-04 09:24:57 · 724 阅读 · 0 评论 -
建造者模
Builder模式,将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。相关模式:思路和模板方法模式很像,模板方法是封装算法流程,对某些细节,提供接口由子类修改,建造...转载 2018-06-04 09:25:06 · 120 阅读 · 0 评论 -
模板方法模式
1. 模板方法的一个实例 这一节主要来学习一下设计模式中的模板方法模式。我们先来看一个例子:假如现在老板让你做一个汽车的模型,要求只要完成基本功能即可,不考虑扩展性,那你会怎么做呢?我们首先会根据经验设计一个类图: 由这个类图可知,非常简单的实现了悍马车,该车有两个型号H1和H2。那现在我们开始实现这两个型号的悍马车,首先我们得把抽象类写好,然后两个不同的模型实现类通过简...转载 2018-06-01 15:45:40 · 132 阅读 · 0 评论 -
代理模式
概念 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。 目的 在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 使用场景 但需要对现有的代码增加新的功能时,如果直接在原有代码上修改,一方面要熟悉之前的代码,另外修改的代码还可能带来新的问题。因此这时代理模式就可以很好的解决这个问题:不修改之前已经写好的代码或者方法,通...原创 2018-06-04 09:25:12 · 126 阅读 · 0 评论 -
适配器模式
目录适配器模式.jpg1. 介绍1.1 模式说明定义一个包装类,用于包装不兼容接口的对象包装类 = 适配器Adapter;被包装对象 = 适配者Adaptee = 被适配的类1.2 主要作用把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。适配器模式的形式分为:类的适配器模式 & 对象的适配器模式1.3 解决的问题原本由于接口不兼容而不...转载 2018-06-01 15:45:31 · 128 阅读 · 0 评论 -
单例模式
单例模式: // 线程不安全 class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { } public static Singleton newInstance() { return singlet...原创 2018-06-04 09:25:35 · 120 阅读 · 0 评论 -
责任链模式
真刀实枪之责任链模式“三从四德”--古代妇女的枷锁三从:未嫁从父、既嫁从夫、夫死从子也就是说,一位女性在结婚之前要听从父亲,在结婚之后要听从丈夫的,如果丈夫死了还要听从儿子的。看下类图代码IWomenpackage com.peng.zrl; /** * @author kungfu~peng * @data 2017年11月21日 * @description */ public in...转载 2018-06-04 09:24:39 · 162 阅读 · 0 评论