设计模式
设计模式个人总结
zhangSir134
不断思考,不断总结
展开
-
[设计模式] ------ 观察者模式和他的升级版发布订阅模式
观察者模式,发布订阅模式,最快理解原创 2020-03-26 22:36:49 · 7323 阅读 · 0 评论 -
[设计模式] ------ 建造者模式(对比模板模式)
建造者模式建造者模式,是为了构建一类具有相同执行顺序的但实现不一样,最后产生不一样的东西的效果。举个例子,比如写作文。每次写作文,我们大致有写标题,写开头,写内容,写结尾这些步骤。public abstract class Builder { abstract String 写标题(); abstract String 写开头(); abstract Stri...原创 2020-03-25 23:49:58 · 7630 阅读 · 0 评论 -
[设计模式] ------ 装饰模式
首先,假设项目有个核心功能。随着项目迭代,又产生功能1和功能2于是有如下需求:某个场景需要核心功能和功能1组合,某个场景需要核心功能和功能2组合,某个场景需要核心功能和功能1和功能2组合,甚至以后有了功能3,某个场景要核心功能和功能1和功能3组合。那么这种情况,就要使用装饰模式,为已有核心功能按一定顺序动态增加其他功能。使用装饰模式,优点在于区分核心功能和其他装饰功能。而且按照装饰...原创 2019-07-23 23:44:30 · 7250 阅读 · 0 评论 -
[设计模式] ------ 适配器模式
适配器把一个类的接口,强制变成另外一个类的接口实现。个人建议,万不得已不要用适配器。如果你的项目刚刚起步,就有人用了适配器,那基本上就是滥用。适配器一般是项目庞大,接口已经对外提供出去,不好快速修改了,但由于特殊业务需要其他接口的实现,不得已才用的。所以,适配器模式,能少用则少用,能不用则不用。具体实现假设有个类A,类中有方法aMethod;再有个类B,类中有方法bMethod;正...原创 2019-07-16 23:33:43 · 7162 阅读 · 0 评论 -
[设计模式] ------ 单例模式
单例模式,是众多设计模式中,写法最多,套路最多,坑最多,面试被问最多的设计模式。基本上,单例模式在面试中已经被问烂了,依稀记得我的上家公司面试我的时候,说到设计模式,直接就说,写一种设计模式,但单例除外。但不得不说,单例由于其概念简单,实用性广的特点,在项目中很是常见。概念:单例模式就是确保一个类只有一个实例的设计模式。设计的思路无非就是先new一个实例,以后都用这个实例就行了。难点在...原创 2019-07-08 20:55:56 · 7366 阅读 · 0 评论 -
[设计模式] ------ 模板模式
模板模式模板模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤一般是定义一个抽象类,有抽象方法,有骨架方法,骨架方法中会定义这几个抽象方法的调用顺序。然后再定义多个实现类,继承这个抽象类,那么就得覆盖父类的抽象方法,那么每个实现类调用骨架方法,最终的结构就是按照父类中预先定义好的调用顺序,去调用自己实现的各个...原创 2018-12-28 00:16:23 · 8123 阅读 · 0 评论 -
[设计模式] ------ 策略模式实战:java中替代if-else的大段逻辑
java中用策略模式替代if-else的大段逻辑问题:java本来是一门以面向对象为主的语言,但很多人嘴上说着java面向对象,然后除了表映射实体之外,其他的还是面向过程的思路。就比如今天要说的,代码中大段大段的if-else判断,每个if-else代码块中又有很多复杂的逻辑,导致整个代码混乱不堪,让别人看到就感觉看到屎一样的代码一样。那么,如何优雅的替代这些代码呢,其实有个设计模式(策略...原创 2019-09-23 11:35:49 · 8946 阅读 · 0 评论 -
[设计模式] ------ 策略模式
策略模式它定义了算法家族,分别封装起来,让他们直接可以互相替换,此模式让算法的变化,不会影响到使用算法的客户其实很简单,可能很多人都用到了,只不过还不知道这就是策略模式而已。比如定义一个接口A,下面有个方法叫a类B1实现了这个方法,当然也要实现a方法,假如B1的a方法中打印了b1b1b1类B2实现了这个方法,当然也要实现a方法,假如B2的a方法中打印了b2b2b2类B3实现了这个方法,...原创 2018-12-27 23:20:17 · 7624 阅读 · 0 评论 -
[设计模式] ------ 简单工厂模式
简单工厂模式不同类型下创建对应的不同的对象,得到不同的结果,就叫简单生产模式比如定义一个接口,叫A,里面有方法a,返回int类型类B1实现A接口,也实现a方法,里面做的是加法运算类B2实现A接口,也实现a方法,里面做的是减法运算类B3实现A接口,也实现a方法,里面做的是乘法运算类B4实现A接口,也实现a方法,里面做的是除法运算定义一个类叫SimpleFactory,里面属性是A,有...原创 2018-12-27 23:42:35 · 7685 阅读 · 0 评论 -
[设计模式] ------ 代理模式
几句话讲明白代理模式代理模式:1.定义 个接口A,接口有个方法methodA(); 2.定义一个实现类B,实现这个接口A,并重写方法methodA(); 3.定义一个代理类C,也实现接口A,并将类B作为他的一个属性, 然后C也重写方法methodA();但方法的实现为B调用B中重写的方法这样就是一个简单的代理模式,其中B和C实现了相同的接口,都重写了接口中的方法,但最终调...原创 2018-06-11 23:29:43 · 7525 阅读 · 0 评论