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 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设 ...
随机推荐
- python不得不知的几个开源项目
1.Trac Trac拥有强大的bug管理 功能,并集成了Wiki 用于文档管理.它还支持代码管理工具Subversion ,这样可以在 bug管理和Wiki中方便地参考程序源代码. Trac有着比较 ...
- 2019-3-8-win10-uwp-渲染原理-DirectComposition-渲染
title author date CreateTime categories win10 uwp 渲染原理 DirectComposition 渲染 lindexi 2019-03-08 09:18 ...
- tf.shape()
tf.shapetf.shape( input, name=None, out_type=tf.int32)12345例如:将矩阵的维度输出为一个维度矩阵import tensorflow as tf ...
- jekyll 添加 Valine 评论
本文告诉大家如何在自己搭建的静态博客添加 Valine 评论.在这前,我基本都是使用 多说,但是多说gg啦,所以就在找一个可以替换的评论 本来 Disqus是很好的,但是在国内很难打开,所以我就需要一 ...
- python基础十二之生成器进阶
生成器表达式 (满足条件的元素或其相关的操作 for 元素 in 可迭代对象 if 条件) g = (i for i in range(10)) for i in g: print(i) egg_li ...
- springboot 配置文件中属性变量引用方式@@解析
这种属性应用方式是field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@ ...
- P1015 高精度乘法
题目描述 给你两个很大的正整数A和B,你需要计算他们的乘积. 输入格式 输入一行包含两个正整数A和B,以一个空格分隔(A和B的位数都不超过 \(10^4\)) 输出格式 输出一行包含一个整数,表示A和 ...
- Linux 内核引用计数的操作
一个 kobject 的其中一个关键函数是作为一个引用计数器, 给一个它被嵌入的对象. 只 要对这个对象的引用存在, 这个对象( 和支持它的代码) 必须继续存在. 来操作一个 kobject 的引用计 ...
- 类(class)和继承
.继承之前的写法 ↓ ----------------------------------------------------------------------------------------- ...
- 【53.57%】【codeforces 610C】Harmony Analysis
time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...