Java江湖之设计模式
Java江湖之设计模式
ps:最近在学习设计模式,感觉这个是个装逼神器呀,就跟武功一样。
某日,senior同学看见rookie同学在练功。
问,"你练得什么武功?"
答:"不知道了吧,我师从江湖第一大门派:java对象派,我练习的功法名叫搬砖功。
问:"何为搬砖功?"
答:"搬砖功简单说来就是代码堆砌,平时如果师傅交代如果有啥子功能需要完成的,我就采用搬砖功,简单的很,直接吧所有需要做的事情写在一个类里面"
"哈哈哈.........."
rookie道,"你笑啥?"
"你有没有发现每次搬砖之后,师傅让你修改砖的位置的时候,你有没有发现你几乎需要推倒重做?"
"呀,你咋个知道?"
“哈,我当然知道,你知道咱们门派除了你练习的搬砖功之外,还有GOF老祖留下的一份高级搬砖秘籍”
"不知道呢,快给我讲讲,感觉很高级的样子"
"别急,别急,且听我娓娓道来"
"话说,远古时期,咱们java门派的前辈GOF,他们在大量搬砖的经验总结下,总结出了一套武功秘籍,这套武功秘籍有六大心法,23种招式,如果你能熟练运用心法于招式,你的搬砖效率怕是比现在强上百倍不止!!!"
"哇,这么厉害的么,senior哥,senior哥,快教教我,快教教我。"
"嗯,我看你骨骼精奇,是天生练武奇才,且听我介绍一下这内功心法和武功招式都是些啥"
六大心法
1.单一职责原则
每个类都不要做太多的事情,功能尽可能简化,不能像你刚才一样,啥子都往一个类里面放,我们应当尽量把每个类负责的功能做到极致
2.里氏代换原则
子类一般建议不要重写父类的方法,父类的一些方法一般具有不可变性,如果被子类修改掉,结果可能会比较酸爽
3.依赖倒置原则
在我们java门派中,更推崇面向接口编程,而不是面向具体。这个原则提倡我们要依赖于抽象,不要依赖于具体
4.接口隔离原则
我们应该尽量使用多个接口取代一个统一的接口,降低类与类之间的耦合度。这里建议:每个接口拥有的功能尽可能小
5.迪米特原则
一个实体与其他实体之间有关联的参数应该尽可能少,尽量使实体之间相互独立
6.开闭原则
这个原则简单来说就是对扩展开放,对修改关闭,意思就是你需要在不修改一个软件实体的基础上去扩展其他的功能
23大招式
1.单例模式
2.工厂模式
3.适配器模式
4.装饰器模式
5.代理模式
6.组合模式
7.策略模式
8.模板模式
9.观察者模式
Java江湖之设计模式的更多相关文章
- Java中单态设计模式
Java中单态设计模式 2011-09-23 16:38:46| 分类: Java | 标签:technology! |举报|字号 订阅 此博文是转自新浪博客中一名叫做"俊俊的 ...
- 【转】java io 流 设计模式
知识点:什么是装饰模式: http://wenku.baidu.com/view/ad4eac9f51e79b896802263b.html(原理讲的很清楚) http://wenku.baidu.c ...
- java 23种设计模式,一般情况下,常用的有哪些? 转载
原址:http://wangle.iteye.com/blog/196972 工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式 ...
- JDK/Java里的设计模式
JDK/Java里的设计模式
- java里面的设计模式
文章目录 Creational(创建模式) 1. Abstract factory: 2. Builder: 3. Factory: 4. Prototype: 5. Singleton: 6. Ch ...
- Java单例设计模式的实现
1. 单例设计模式的定义 单例设计模式确保类只有一个实例对象,类本身负责创建自己的对象并向整个系统提供这个实例.在访问这个对象的时候,访问者可以直接获取到这个唯一对象而不必由访问者进行实例化. 单例设 ...
- java常用的设计模式
设计模式:一个程序员对设计模式的理解:"不懂"为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的"复杂"恰恰就是设计模式的精髓所 ...
- java 的常用设计模式--大话设计模式
设计模式:一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把 ...
- java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述
在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设 ...
随机推荐
- html实体字符转换成字符串
function EntityToString(value) { let tag = document.createElement("div"); tag.innerHTML = ...
- hdu 4063 Aircraft (Geometry + SP)
Problem - 4063 几何加简单最短路. 题意是给出若干圆的圆心以及半径,求出从给出的起点到终点的最短路径的长度,可以移动的区域是圆覆盖到的任意一个位置. 做法是这样的,对圆两两求交点,用这些 ...
- 如何查看redis内存使用情况
https://jingyan.baidu.com/article/2c8c281dbd079f0008252a0f.html Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以 ...
- hdu 1595 find the longest of the shortest(迪杰斯特拉,减去一条边,求最大最短路)
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...
- 一个框架看懂优化算法之异同 SGD/AdaGrad/Adam
Adam那么棒,为什么还对SGD念念不忘 (1) —— 一个框架看懂优化算法 机器学习界有一群炼丹师,他们每天的日常是: 拿来药材(数据),架起八卦炉(模型),点着六味真火(优化算法),就摇着蒲扇等着 ...
- PHP利用纯真IP数据库在本地实现IP地址信息查询
https://blog.csdn.net/myweishanli/article/details/45098693 准备工作: 建议本地IP地址数据库,请到http://www.cz88.net/这 ...
- [转]安卓加固之so文件加固
一.前言 最近在学习安卓加固方面的知识,看到了jiangwei212的博客,其中有对so文件加固的两篇文章通过节加密函数和通过hash段找到函数地址直接加密函数,感觉写的特别好,然后自己动手实践探索s ...
- P1113 同颜色询问
题目描述 现在有一个包含 \(n\) 个元素的数组,它的元素的编号从 \(1\) 到 \(n\) . 每一个元素都有一个初始的颜色 \(C_i\) 以及数值 \(W_i\) . 这个数组支持 \(4\ ...
- 浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
* IE浏览器的内核Trident. Mozilla的Gecko.google的WebKit.Opera内核Presto: * png24为的图片在iE6浏览器上出现背景,解决方案是做成PNG8. * ...
- H3C擦除配置