ShaneJim

记录分享一些自己学习的内容。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

 

posted on 2018-11-17 01:08  ShaneJim  阅读(178)  评论(0编辑  收藏  举报