设计模式很重要,重要性我就不再复述了。最主要的是,通常我们在写一定量代码后,常用的方法什么的都熟悉后,想再提高代码能力,我找到的最好的方法还是去学习,理解设计模式。不理解设计模式,看一些开源框架和java源码会很难懂。

  刚学java时就从各种文章,也听很多人说面向对象编程很重要。但是在编程时虽然会建立类什么的,看起来是面向对象编程。面向对象中的概念也背了一大堆,然而感觉没有真正的理解面向对象编程。因为实际上在开发业务过程中,尤其是简单一些简单的业务,接口,抽象类什么的都用不上。直到开始学习设计模式后,才觉得渐渐理解面向对象编程。这两个是相关的,或者说就是差不多的。。。我也没想到合适形容词,合适的话来表达这两者的关系(手动允悲)。设计模式一开始看的时候,肯定会很枯燥,看了也会很容易忘记。这时一定要结合面向对象的特性和概念去理解,去看那些代码。比如,类,对象,实例化,继承,重写等概念,你熟悉的话,肯定更容易理解设计模式。最好也去了解一下UML的类图,设计模式中经常会用类图来表示类之间的关系。还有一开始如果不怎么理解,千万不要放弃,都是需要一个过程的。我也是每一次看设计模式,都会有一些新的理解。

  现在在网上关于设计模式的文章已经很多了,设计模式的系列文章也很多。我还是打算写一下设计模式,一是对自己的理解和学习作一个记录,自己写下来,更能记住和理解。二是,如果其他有人看到,希望能起到一定帮助。虽然我写得不好,可能帮助很小。。。或者我有错误的地方,欢迎大家指出来,喷也不用客气(手动笑哭)。好了,暂时就先这样吧,希望能坚持下来,并保持每周两篇以上的更新。

  本系列用到的代码都放在GitHub上面:https://github.com/ShaneJim/BasicJava

一、设计模式的六大设计原则:

1.单一职责原则:一个类一个职责。但“职责”容易划分不清

2.里氏替换原则:使用父类的地方,替换成子类也可以实现

3.依赖倒置原则:高层模块不应该依赖底层模块,应该在两层中间加一层抽象,两者都依赖这个抽象

4.接口隔离原则:一个接口只对一个子模块或业务逻辑进行服务,使用多个专门的接口比使用单一的总接口要好

5.迪米特法则:一个对象应该对其他对象有最少的了解,即一个类应该对自己需要耦合或者调用的类知道得最少

6.开闭原则:一个软件实体,如类、模块和函数应该对外扩展开放,对修改关闭

二、设计模式分为三大类:创建型,结构性,行为型。

(在写每一篇时,发布后,会加在这里加上超链接)

创建型模式是用来创建对象的模式,抽象了实例化的过程。创建对象的同时隐藏创建逻辑,不是使用 new运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

1.单例模式

2.工厂方法模式

3.抽象工厂模式

4.建造者模式

5.原型模式

结构型模式讨论的是类和对象的结构,它采用继承机制来组合接口或实现,或者通过组合一些对象实现新的功能。这些结构型模式在某些方面具有很大的相似性,但侧重点却各不相同。

1.代理模式

2.装饰模式

3.适配器模式

4.组合模式

5.桥梁模式

6.外观模式

7.享元模式

行为型模式关注的是对象的行为,用来解决对象之间的联系问题。

1.模版方法模式

2.命令模式

3.责任链模式

4.策略模式

5.迭代器模式

6.中介者模式

7.观察者模式

8.备忘录模式

9.访问者模式

10.状态模式

11.解释器模式

JAVA设计模式——开篇的更多相关文章

  1. Java设计模式开篇

    在所有的设计模式开篇中,总是说一个好的架构,或多或少都会有设计模式的出现.当然或多或少也会使用设计模式的相关原则: SOLID+迪米尔原则 1.优化代码的第一步:单一职责原则 S:单一职责链原则:英文 ...

  2. 初探Java设计模式1:创建型模式(工厂,单例等)

    Java 设计模式 一直想写一篇介绍设计模式的文章,让读者可以很快看完,而且一看就懂,看懂就会用,同时不会将各个模式搞混.自认为本文还是写得不错的,花了不少心思来写这文章和做图,力求让读者真的能看着简 ...

  3. 【java设计模式】-00目录

    开篇 [java设计模式]-01设计模式简介 创建型模式: [java设计模式]-02工厂模式(Factory Pattern) [java设计模式]-03抽象工厂模式(Abstract Factor ...

  4. 12天,这本《重学Java设计模式》PDF书籍下载量9k,新增粉丝1400人,Github上全球推荐榜!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言

  5. java设计模式- (1)单例模式

    参加校园招聘的笔试,发现公司都会考一些java设计模式,所以上网查询相关内容,总结常用的几种单例模式. 单例模式(Singleton Pattern)是 Java中最简单的设计模式之一.这种类型的设计 ...

  6. JAVA 设计模式 桥接模式

    用途 桥接模式 (Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化. 桥接模式是一种结构式模式. 结构

  7. java设计模式 策略模式Strategy

    本章讲述java设计模式中,策略模式相关的知识点. 1.策略模式定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户.策略模式属于对象的 ...

  8. Java设计模式之行为型模式

    行为型模式共11种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 策略模式:策略模式的决定权在用户,系统本身提供不同 ...

  9. Java设计模式(三) 抽象工厂模式

    原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...

随机推荐

  1. cadence钻孔文件及光绘文件的生成

    完成PCB布线之后,需要生成钻孔文件和光绘文件交给PCB厂家制作PCB板,下面总结详细方法!

  2. Filter(过滤器)

    一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...

  3. ASP.NET Core Web App应用第三方Bootstrap模板

    引言 作为后端开发来说,前端表示玩不转,我们一般会选择套用一些开源的Bootstrap 模板主题来进行前端设计.那如何套用呢?今天就简单创建一个ASP.NET Core Web MVC 模板项目为例, ...

  4. 解决 spring-cloud-starter-zipkin 启动错误

    应用场景:Spring Boot 服务添加 Zipkin 依赖,进行服务调用的数据采集,然后进行 Zipkin-Server 服务调用追踪显示. 示例pom.xml配置: <parent> ...

  5. emWin录音机,含uCOS-III和FreeRTOS两个版本

    第12期:录音机配套例子:V6-921_STemWin提高篇实验_录音机(uCOS-III)V6-922_STemWin提高篇实验_录音机(FreeRTOS) 例程下载地址: http://forum ...

  6. 微服务架构-选择Spring Cloud,放弃Dubbo

    Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经走了一年多. 在使用 Spring Cloud 之前,我们对微服务实践是没有太多的体会和经验的.从 ...

  7. InputStream和Reader,FileInputStream和 FileReader的区别

    一.InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据),最主要的区别如下: InputStream用来读取二 ...

  8. Apache Storm 核心概念

    前言: Storm读取实时数据流,并传递给处理单元,最终输出处理后的数据. 下图描述了storm的处理数据的主要结构. 元组(Tuple) :       元组是Storm提供的一个轻量级的数据格式, ...

  9. Javascript高级编程学习笔记(1)—— JS简介

    此系列文章,用于记录所学,如有错误欢迎指出. Javascript组成 1.核心(ECMAScript) 2.文档对象模型(DOM) 3.浏览器对象模型(BOM) 1.核心(ECMAScript) E ...

  10. [Swift]LeetCode232. 用栈实现队列 | Implement Queue using Stacks

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...