程序员人生 网站导航

【HeadFirst设计模式――开篇】

栏目:互联网时间:2014-11-12 08:58:49

    最近在看HeadFirst,接下来的1段时间会陆续更新有关HeadFirst设计模式相干的文章。记得很久之前在学习大话设计模式的时候,只是走马观花的大致走过1遍,至于里面很多东西都掌握的不是很好。恰巧又接触了HeadFirst,想着还是把设计模式好好的整理1下,至因而大话设计还是HeadFirst,个人看来是无关紧要的。本着学习的目的,而且都是设计模式,只不过1个是C#,1个是Java。


    本来第1篇文章想着从视察者模式开始讲起,但是想着想着,还是把UML的类图的关系捋1下吧,不然的话类图都看不懂。翻翻我之前写的博客,关于UML的总结着实写了好几遍了,但是最近再总结时竟然又发现了很多之前总结不到的地方。所以,又验证了“学习是1个不断深入、按部就班的进程”。不要说你对1个知识点掌握的不好,也不要找这样那样的理由。归根结柢,是我们没有找到那个知识点的精华所在。


    今天总结是建立在之前总结的基础之上的,所以难免笼统,尽请体谅!


    继承

    表示:实线+空心3角箭头

    含义:指的是1个类(子类或子接口)继承另外的1个类(父类或父接口)的功能

    剖析:继承是类与类或接口与接口之间最多见的关系,在Java中继承用关键字extends标识

    注意:注意箭头的方向,是父类指向子类;

          继承表示的是类与类或接口与接口之间的关系。

 

  

    泛化

    同继承

    泛化也是1种继承关系,表1般与特殊的关系。在我看来,泛化于继承的区分只是相对谁而言。比如上面那张图,可以说是子类继承父类,老虎和小狗继承动物这个父类;而子类是父类的泛化,也就是老虎和狗狗是动物这个父类的泛化。好了,泛化不做过量说明。有不同观点的欢迎在下面留言斧正!谢谢!


    实现

    表示:虚线+空心3角箭头

    含义:指的是1个类实现1个接口(可以是多个接口)的功能

    剖析:实现是类与接口之间最多见的关系,在Java中实现用Implements标识

    注意:注意箭头的方向,是类指向接口

           注意实现关系的适应场合,是描写类与接口之间用实现关系



    依赖:

    表示:虚线+箭头

    含义:简单的理解就是1个类A使用到了另外一个类B,而且类B的变化会影响到类A

    剖析:在大多数情况下,依赖关系体现在某个类的方法使用另外一个类的对象作为参数

          举个例子:好比动物的存活要依赖于水和氧气,那末水、氧气与动物之间就是依赖关系

    注意:注意箭头的方向,是依赖的1方指向被依赖的1方

          依赖关系描写的是类与类之间的关系



    关联关系――聚合:

    表示:空心菱形+实线箭头

    含义:是关联关系的1种特例,表示整体与部份之间的关系,是1种弱的具有关系;

          并且整体与部份不在1个生命周期内,是可分离的

    剖析:具体的体现是A对象可以包括B对象,但是B对象不是A对象的1部份;

          举个例子,好比大雁和雁群;电脑与CPU;公司与员工;

    注意:注意方向,空心菱形指向整体,箭头1端指向的是部份



    关联关系――组合
    表示:实心菱形+实线箭头

    含义:是关联关系的1种特例,表示整体与部份之间的关系,是1种强的具有关系;

          并且整体与部份在1个生命周期内,体现了严格的整体与部份关系,是不可分离的

    剖析:具体的体现是A对象可以包括B对象,但是B对象是A对象的1部份;

          举个例子,好比鸟和翅膀;人和大脑

    注意:注意方向,实心菱形指向整体,箭头1端指向的是部份




    今天的总结就到这里,也是把之前的盲区重新纠正1下,之前的总结有很多总结不到的地方,所以本着学习的目的再把它们整理1下。接下来我们会开始视察者模式,敬请期待吧!

 

   

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐