(一)设计模式入门

来源:互联网 发布:知乎龙头股票有哪些 编辑:程序博客网 时间:2024/06/05 20:27

看完了设计模式入门这一章节,先写我自己的感受吧,后面会摘抄一写书中的原话。

第一次接触OO是在大一下学期,但是自己比较浪,那个学期什么都没怎么学,相当于了解了什么是OO(面向对象编程),在这个学期正式接触Java,还是讲面向对象编程。

第一章主要讲了策略模式,我只能写一些我现在记得的东西with out looking the book.看书的时候我想到了,我们现在正在做的Java的面向对象与多线程实验,在第一次实验中,

我们主要定义了类,并且对类进行了继承,以及方法的重用。看这本书的第一章的时候,说实话,我对可维护性之类的东西并没有什么感觉,虽然老师说我们需要使我们的代码变得可维护,但是我依旧不知道这句话到底是什么意思。员工的处理方法使所有的鸭子都能够飞了,that's so terrible..所以我意识到了继承这种方法并不是很好,它会给我们带来很多问题,那么如何去解决问题呢?书中层层递进,给我们讲了思考的过程以及如何去实现。我现在明白很清楚的几点:

1.我们首先面对一个对象,我们可以把它其中固定不变的部分还有后续中可能做一定调整的部分放在一个板块,而把那些会出现变化的部分抽线出来,定义一个接口,然后在通过implements在实现对方法的具体操作,在原来的Class中,我们需要去定义接口的类,以及写雷氏performFly(){flyBehavior.fly()}这样的函数,同时定义setFlyBehavior(—),来对具体的对象进行修改从而时间了多态。

2.我们需要多去使用组合,而少使用继承,它能够使我们的代码更加容易去维护,弹性化比较好。

3.我们为什么需要去学习设计模式?原因有很多:我记得的最深的原因是我们可以站在设计的角度来思考问题,而不是去对某个具体的设计上去转牛角尖.

下面是我对原文中一些话的摘抄。

1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。把会变化的部分取出并“封装”起来,好让其他部分不会受到影响。

2.针对接口编程,而不是针对实现编程。我们讲对象的行为放在分开的类中,此类专门提供某行为接口的实现。这样,我们就不要需要去知道行为的具体实现。

3.“针对接口编程”真正的意识是“针对超类型编程”,这句话更明确的说成“变量的声明类型应该是超类型,通常是一个抽象类或者是一个皆苦,如此,只要是具体实现此超类型的类所产生的对象,都可以制定给这个变量。这也以欸这,声明类时不用理会执行时的真正的对象”。

4.在OO系统中,类代表的东西一般都是既有状态(实例变量)又有方法。但是,行为也可以去被定义成为某个类。

5.多用组合,少用继承。

关于模式:知道OO基础,并不足以让你设计良好的OO系统。良好的OO设计必须具备可服用、可扩充、可维护三个特性。模式可以让我们建造出具有良好OO设计质量的系统。模式被认为是历经验证的OO设计经验。模式不是代码,而是针对设计问题的通用解决方案。你可把它们应用到特定的应用中。模式不是发明,而是被发现。大多数的模式和原则,都着眼于软件变化的主体。大多数的模式都允许系统局部改变独立于其他部分。我们经常把体统中会变化的部分抽出来封装。模式让开发人员之间有共享的语言,能够最大化沟通的价值。

原创粉丝点击