为什么80%的码农都做不了架构师?>>>
1、如何使用?
设计模式是为了解决问题产生的,一种解决方案,你的问题是什么决定你用什么设计模式, 你没有问题却偏要生搬硬套一个设计模式上去, 这就是没事找事,你的问题就像:
自己:医生, 我身高170, 体重60kg, 请问这二十三种药该吃哪一种。
医生: 吃你妹, 吃脑残片去
2、三大分类:
设计模式分为三种
2.1 创建型模式:生产类对象用的,类似于new 类名();
2.2 结构型模式:定义类和类关系用的,从程序的结构上解决模块之间的耦合问题
2.3 行为型模式设计到算法和对象间的职责分配
创建型模式:工厂、抽象工厂、单例、建造者、原型
结构型模式:适配器、装饰、代理、外观、桥接、组合、享元
行为型模式:策略、模板、观察者、迭代、责任链、命令、备忘录、状态、访问者、中介、解释器
3、精通设计模式列表(基本每一篇博客都对应项目中的实际应用场景)
单例设计模式
工厂+策略(2种模式)
抽象工厂+模板(2种模式)
建造者
原型
适配器设计模式
装饰设计模式
代理设计模式
桥接设计模式
外观设计模式
组合设计模式
享元设计模式
过滤器设计模式
责任链设计模式
命令设计模式
中介设计模式
个人感觉没有用的设计模式,完全在项目中凭业务逻辑就能够直接完成的设计模式:
迭代器设计模式:在java集合类才用到,项目中不需要
解释器设计模式:没用
备忘录设计模式:类似于回滚的设计模式,没用,直接colne就可以
观察者设计模式:没用,业务逻辑就可以写
状态设计模式:没用,业务逻辑代码可以写
访问者设计模式:没用,业务逻辑可以写
4、总结
会设计模式跟会用设计模式不一样,别适得其反,为了写设计模式而写设计模式。
举例说明下:
设计模式就是一种解决方案,你有百万大军,对方有100人,实力差距非常大,你直接让他们冲上去直接杀死就好,但是你想用一个十面埋伏阵(阵法相当于一种解决方案,一种设计模式)把敌方杀死,虽然结果都一样,但是你不觉得脱裤子放屁找费事吗。