软考--设计模式

      软考结束了,对于设计模式这一块的整理还需要再做一下。

      一、分类:

      (1)创建型

        查资料:社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。

理解:对于这类模式,类似于这次考试的一道选择题:____该模式,使得类的实例化延迟到子类,由子类决定实例化哪个类(工厂方法模式),包括单例模式、创建者、原型,都是这么个意思,是在单独对象的创建过程进行研究,做出相应情形下最高效的创建工作。

 

     (2)结构型

        在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。-----引用学习

        期间的几个模式,类似于:装饰、组合、桥接,通过观察其类图发现,这一类模式,侧重于各个类或者相关类之间的组成、依赖,拿组合模式来说:

                            

        Component和Composite之间的聚合和组合分别是什么?同一个层次之间的Leaf和Composite的区别又是什么,这些关系搞清楚了,整个类图的宏观就有了;就像桥接模式中,最为重要的地方在我看来就是在实际应用中,如果是二维关系,究竟该使得那个组成充当AbstractClass,哪个组成充当Interface,如图:

                                                                        

        So,结构型类的模式相对于行为型,我更加喜欢把它称为是静态模式,把类与类之间的框架、联系搭建起来,在客户端处进行整合。


     (3)行为型

        在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,就拿命令模式来说:

                                                              

        类与类之间的关系已经确定,就需要去考虑如何解决类之间的行为问题,Invoker这个消息的请求者会去调用Command的execute()方法,而execute方法又去调用Receiver的action()方法,这样环环相扣的调用关系,在行为型模式里体现的很到位,也是这类模式的核心。

        于是,对于三类模式有一个宏观的把握之后,再去解题,顺着该类型的特点和用途,就能很好的进行下一步学习和解答。

 

二、考试小经验分享

      1、extends和implements对应的abstract以及interface

           题中类图中的继承并不一定代表继承,maybe实现,一定要去看代码!!

      2、This的问题,在做卷子的过程,有些变量赋值我喜欢在变量前加上this,其实没有搞清楚为什么要加this,当形参的名字如果和变量的名字一样时候,为了进行二者区分,才加this.

      3、什么时候进行强制类型转换?

        如果某个方法传进一个String类型参数,要将其赋值给一个自定义类型的变量,这个时候,进行类型转换很必要,当然不仅仅限于我所提到的这种情况,具体参考J2SE视频第六章所讲基本数据类型转换关系。

         除此,在做模板方法深复制的时候,那个题的答案也加上了强制类型转换,虽然传进的类型和变量类型一致……

     4、参数的理解,是否在参数中传进来了某个参数,但是在代码中没有体现,这就需要考虑是不是在空上要填写了。

     5、Java代码的熟悉,就像这次考试中策略模式,复习很早之前看过,考试时候有点忘了,在构造方法中差点写出了return,这就是对代码的不了解才会去想的,事实是构造函数中无须return.

     6、最重要的一点,类图和代码之间的对应关系,类与类之间,不同的类中的方法与方法之间,这也是能够让你在对该模式不够了解的情况下解出问题的一个好办法。

 

       这次软考,对设计模式的理解提升很大,其中最重要的是看刘伟老师的CSDN博客,对其中例子的思考让我成长很大。

       分享:  http://blog.csdn.net/lovelion?viewmode=contents
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值