![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 67
十三月的斑
写代码的
展开
-
性冷淡风小结常用设计模式(一)------策略模式
一、面向对象通用基本原则:抽象、继承、多态简单的讲,所谓设计模式就是用更专业和细致的的语言描述抽象、继承和多态。在实际开发中,如果一时想不到要用哪种设计模式来优化自己的代码,就使用最基本的抽象、继承、多态来抽取公共接口,将动态的代码用接口+参数实现的方式进行。但是,该模式要注意,继承是有原罪的:对类的局部改动,尤其超类的局部改动,会影响其他部分。影响会有溢出效应。例如:public ab...原创 2018-11-30 16:25:29 · 147 阅读 · 0 评论 -
性冷淡风小结常用设计模式(二)------观察者模式
一、定义:观察者模式: 对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化。观察者模式就像是预定牛奶业务,奶站是Subject,订奶人是Observer。其中,Subject和Observer的接口设计如下:Subject:登记注册、移除和通知Observer:接收输入二、场景说明:以天气预报为例,现有...原创 2018-12-03 11:32:59 · 98 阅读 · 0 评论 -
性冷淡风小结常用设计模式(三)------装饰者模式
一、一句话描述装饰者模式装饰者模式: 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性。在装饰者模式中,会有一个Decorator的类,该类的作用类似于一个增强器,继承了该类的类,会被增加一些原本没有的功能/数据/方法。二、先简要说明一下类的继承层次现在有三个类:Drink(饮料类)、Coffee(咖啡类)、Decaf(低咖啡因咖啡),类的继承关系如下:三个类的代码如下...原创 2018-12-03 17:41:53 · 153 阅读 · 0 评论 -
性冷淡风小结常用设计模式(四)------单例模式
1. 单例模式的意义:在项目中,有些实例只能有一个,比如 线程池、缓存、硬件设备。在new的过程中,如果有多个地方new了这些实例,比如在打印机设备中 A,B,C,D分别new了打印机,可能会造成打印内容合并、混乱、冲突、结果不一致。即,一个类,实际上该只有一个实例,但如果由于系统设计的失误,导致多个实例被new出来,会造成混乱,就需要用到单例模式。2. 使用意义上的单例:使用静态变量3....原创 2018-12-10 10:21:46 · 141 阅读 · 0 评论 -
性冷淡风小结常用设计模式(五)------工厂模式
一、工厂模式定义:工厂模式:为创建对象提供过度接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂方法1、当一个类不知道它所必须创建的对象的类的时候;2、当一个类希望由它的子类来指定它所创建的对象的时候;3、当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮组子类是代理者这一信息局部化的时候。二、抽象工厂模式定义:定义了一个接口,用于创建相...原创 2018-12-10 11:05:42 · 97 阅读 · 0 评论 -
性冷淡风小结常用设计模式(六)------适配器模式
一、适配器模式原理首先,举个例子:插座与插头。比如,中国人去英联邦国家,要带插座转换器。然后,来一段火鸡变鸭子的代码。要实现的目标是,调用鸭子类的(quack()和fly())方法,但打印火鸡的叫声和飞行距离。即,为火鸡披上鸭子的外衣,但仍然可以做自己的事情。适配器类public class TurkeyAdapter2 extends WildTurkey implements Duck...原创 2018-12-10 15:11:58 · 146 阅读 · 0 评论 -
性冷淡风小结常用设计模式(七)------原型模式
**1. 定义:通过复制现有实例来创建新的实例,无需知道相应类的信息。**原理示例如下:具体代码如下:2. 原型模式优缺点:**优点:**通过原型模式是从内存中直接拷贝一份,隐藏了创建新实例的复杂性;相对于new一个对象,速度更快,更高效。重复创建相似的对象的时候,可以考虑使用原型模式。**缺点:**每一个类必须配备一个克隆方法。深层复制比较复杂。3. 单例模式与原型模式的冲突比...原创 2018-12-10 17:32:40 · 136 阅读 · 0 评论 -
性冷淡风小结常用设计模式(八)------代理模式
1. 几种常见的代理模式代理模式定义:为其他对象提供一种代理以控制这个对象的访问。代理模式结构: Subject:抽象主题类,声明真实主题与代理的共同接口方法。 RealSubject:真实主题类,定义了代理所表示的真实对象,客户端通过代理类间接的调用真实主题类的方法。 ProxySubject:代理类,持有对真实主题类的引用,在其所实现的接口方法中调用真实主题类中相...原创 2018-12-11 11:33:01 · 91 阅读 · 0 评论