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江湖之设计模式的更多相关文章

  1. Java中单态设计模式

    Java中单态设计模式 2011-09-23 16:38:46|  分类: Java |  标签:technology!  |举报|字号 订阅     此博文是转自新浪博客中一名叫做"俊俊的 ...

  2. 【转】java io 流 设计模式

    知识点:什么是装饰模式: http://wenku.baidu.com/view/ad4eac9f51e79b896802263b.html(原理讲的很清楚) http://wenku.baidu.c ...

  3. java 23种设计模式,一般情况下,常用的有哪些? 转载

    原址:http://wangle.iteye.com/blog/196972 工厂模式, 工厂方法模式,单例模式, 外观(Facade)模式, 观察者(Observer)模式,桥接(Bridge)模式 ...

  4. JDK/Java里的设计模式

    JDK/Java里的设计模式

  5. java里面的设计模式

    文章目录 Creational(创建模式) 1. Abstract factory: 2. Builder: 3. Factory: 4. Prototype: 5. Singleton: 6. Ch ...

  6. Java单例设计模式的实现

    1. 单例设计模式的定义 单例设计模式确保类只有一个实例对象,类本身负责创建自己的对象并向整个系统提供这个实例.在访问这个对象的时候,访问者可以直接获取到这个唯一对象而不必由访问者进行实例化. 单例设 ...

  7. java常用的设计模式

    设计模式:一个程序员对设计模式的理解:"不懂"为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的"复杂"恰恰就是设计模式的精髓所 ...

  8. java 的常用设计模式--大话设计模式

    设计模式:一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把 ...

  9. java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述

    在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设 ...

随机推荐

  1. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易

    近日,PyTorch 社区发布了一个深度学习工具包 PyTorchHub, 帮助机器学习工作者更快实现重要论文的复现工作.PyTorchHub 由一个预训练模型仓库组成,专门用于提高研究工作的复现性以 ...

  2. CentOs7 使用iptables开启关闭端口

    介绍 iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分 iptables文件设置路径:命令:vim /etc/sysconfig/iptables-config 注 ...

  3. centos下iptables使用

    iptables的使用规则: 1.表    (table) 包含4个表(哪个表是当前表取决于内核配置选项和当前模块):4个表的优先级由高到低:raw-->mangle-->nat--> ...

  4. windows下检出项目和提交项目

      1.git status:查看工作区的状态 2.git add 文件名:建立跟踪 3.git commit:提交变更 4.git push:发布本地操作 5.解决 The requested UR ...

  5. SQL,范式,事务

    数据库范式: 构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式. 范式是符合某一种级别的关系模式的集合.数据库中的关系必须满足一定的要求,即满足不同的范式. 满足最低要求的范式是第一范式 ...

  6. UVA 11996 Jewel Magic —— splay、序列的分裂与合并、LCP的哈希算法

    #include <cstdio> #include <cstdlib> #include <iostream> #include <algorithm> ...

  7. python模块之hashlib模块

    hashlib模块:提供摘要算法 格式: hashlib格式: obj = hashlib.算法(md5,sha....) obj.update(摘要内容:bytes类型) result = obj. ...

  8. Java8 API学习2 - java.lang.CharSequence, java.lang.String

    CharSequence public interface CharSequence 字符序列接口, 实现此接口的非抽象类有String, StringBuffer, StringBuilder. 从 ...

  9. P1050 全排列

    题目描述 给定一个正整数n, 按照递增顺序打印数字1到n的所有排列. 输入格式 一个整数n(1<=n<=7). 输出格式 按照递增的顺序输出n的所有排列, 详见样例.请注意,每行末尾不能有 ...

  10. dotnet core 发布只带必要的依赖文件

    在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.T ...