java 设计模式(Design Patterns)总

原创 2017年05月16日 15:31:52

设计模式,是一套可以被反复利用,多数人知晓的,经过分类,代码设计经验,说简单点,设计模式就是为了让自己的代码可读性增强,复用率提高,保证代码的可靠性。

一,设计模式的分类:

设计模式可以分为三大类:

1 创建型模式,一共有5种:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。

2 结构型模式, 一共有7种:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。

3 行为型模式, 一共有11种:策略模式,模板方法模式,观察者模式,迭代器模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式


以上是23种设计模式,实际上,这23种设计模式都来自于 6大设计原则

java 6大设计原则

1,开闭原则

   定义:一个软件的实体如类,模块应该对拓展开放,对修改关闭

   该设计原则是6大设计原则的大哥大,我们所要设计的某个类的时候就应该想明白该类负责哪些职责,不应到了后期修改代码,应当尽可能的去拓展代码。换成安卓开发中,我们应当尽可能的使用接口和抽象类。

2,里氏替换原则

   定义:任何基类可以出现的地方,子类一定可以出现,即子类一定要可以替代父类

   对于该设计原则,简单的说就是子类不可更改父类的功能和方法,如果更改,可能会导致不可预知的错误,给代码带来难以维护的后果。假设一组继承关系中,父类需要修改,必须考虑到其所有的子类。

3,依赖倒置原则

   定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象

   依赖导致设计原则是开闭原则的基础,简单的说是面向接口编程,应对依赖于抽象,而不依赖于具体。在java中,细节即实现类是多变的,抽象的东西相对于稳定的多,以抽象为基础搭建起来的架构比以细节搭建起来的架构稳定的多,该设计原则的核心是面向接口编程。

4,接口隔离原则

   定义:一个实现类不应该依赖于它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口之上

   简单的说就是使用多个隔离的接口比使用单独一个接口要好,实质上是降低耦合的意思,一个类不应去实现他们不需要的方法,应当接口拆分开来使用

5,迪米特原则

   定于:一个对象应当对其他对象保持最少的了解

   这个很容易理解,设计功能模块,应当相对独立,尽量少的与其他对象产生耦合,如果不按这么去做,可能会导致系统十分臃肿,维护一个功能模块的方法导致另一个功能模块也要跟着维护,增加工作量。

6,单一职责原则

   定于:不要存在多于一个导致类变更的原因

   通俗的去讲,即一个类只负责一个功能,本质上讲和迪米特法则有些相似,是为了减少需求改变时产生的影响,如不遵守,会导致维护成本上升,代码可读性下降


以上是6大设计原则的简单学习介绍,相应的,23种设计模式就是从这6大设计原则衍生出来的,大部分遵循6大设计原则,按照这些设计原则设计出来的代码,可读性,可拓展性强,耦合度低,利人利己


版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式 - Design Patterns

设计模式四人组 GoF(“四人帮”,又称Gang of Four,即Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四人)1. 起源Go...
  • u010297957
  • u010297957
  • 2016年03月29日 23:20
  • 1051

java设计模式(Design Patterns)

设计模式(Design Patterns)                                   ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、...
  • zhihui1017
  • zhihui1017
  • 2015年11月09日 10:54
  • 1408

Java基础学习总结——Java23种设计模式(Design Patterns)详解

设计模式(Design Patterns)                                   ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使...
  • benmingshimangseng
  • benmingshimangseng
  • 2016年10月21日 10:41
  • 425

java设计模式大全 Design pattern samples in Java(最经典最全的资料)

Design pattern samples in Java.Build status:IntroductionDesign patterns are formalized best practice...
  • changemyself
  • changemyself
  • 2015年06月19日 13:10
  • 10429

什么是设计模式?(Design pattern)--和生活结合更好理解

什么是设计模式 一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;设计模式使代码编制  真正工程...
  • guo13313
  • guo13313
  • 2017年04月09日 07:50
  • 950

Head First Design Patterns(深入浅出设计模式)-目录

目录 序 你的大脑是如何理解设计模式的?此时,你正在设法学习些知识,而你的大脑要通过确认这些知识来给你提供支持。你的大脑在想:“最好出去做些更重要的事情,就象消灭野兽或者光着身子滑雪不是个好主意”...
  • leiyifight
  • leiyifight
  • 2013年06月24日 22:41
  • 964

Head First Design Patterns影印版和中文版

深入浅出设计模式(影印版)http://www.oreilly.com.cn/book.php?bn=7-5641-0165-2Head First设计模式(中文版)http://www.oreill...
  • ddkiller
  • ddkiller
  • 2007年10月15日 08:42
  • 751

Design Patterns: Elements of Reusable Object-Oriented Software

 GoF:(Gang of Four,GOF设计模式)---四人组      Design Patterns: Elements of Reusable Object-Oriented Softwar...
  • trueman_zh
  • trueman_zh
  • 2009年11月09日 11:27
  • 446

Design Patterns Elements of Reusable Object-Oriented Software(一)Introduction(介绍)

1.Introduction(介绍) Designing object-oriented software is hard,and designing reusable object-oriented...
  • liuzuyi200
  • liuzuyi200
  • 2013年07月17日 10:29
  • 1327

C++版的Head First Design Pattern

       前 些天从sourceforge上down下一个C++版的Head First Design Pattern,一直都没有仔细看过,也不知道HeadFirstDesignPattern是一...
  • iinel
  • iinel
  • 2007年11月16日 10:13
  • 1580
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 设计模式(Design Patterns)总
举报原因:
原因补充:

(最多只允许输入30个字)