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. 11 session 使用

    #session 使用app.secret_key = "dsada12212132dsad1232113"app.config['PERMANENT_SESSION_LIFETI ...

  2. poj 3169 Layout (差分约束)

    3169 -- Layout 继续差分约束. 这题要判起点终点是否连通,并且要判负环,所以要用到spfa. 对于ML的边,要求两者之间距离要小于给定值,于是构建(a)->(b)=c的边.同理,对 ...

  3. AtCoder Beginner Contest 077 C Snuke Festival(二分)

    二分水题,A,B,C三个数组排序,对于每个B[i],二分算出来有多少A比他小,多少C比他大,然后扫一遍出结果.O(nlog(n))水过. #include <bits/stdc++.h> ...

  4. P3899 [湖南集训]谈笑风生 主席树

    #include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> ...

  5. linux中使用gbd进行单布调试

    在linux 中使用gdb命令行进行单步调试,将整个过程介绍如下: 1.在当前路径下新建文件夹main, 并进入文件夹,新建文件main.cpp mkdir main cd main touch ma ...

  6. WPF 之 DataTemplate 实例(摘抄)

     

  7. HDU 1698 Just a Hook 线段树区间更新、

    来谈谈自己对延迟标记(lazy标记)的理解吧. lazy标记的主要作用是尽可能的降低时间复杂度. 这样说吧. 如果你不用lazy标记,那么你对于一个区间更新的话是要对其所有的子区间都更新一次,但如果用 ...

  8. js最简单的对数字的排序

    文章地址 https://www.cnblogs.com/sandraryan/ JS自己有sort可以用来排序,可以排string会转为ASCII比较,但是,ASCII对数字的排序不合理   < ...

  9. Python--day47--内容回顾

    1.什么是数据库

  10. Python--day40--复习和回调函数实例