• 【HeadFirst设计模式——开篇】


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

    本着学习的目的,并且都是设计模式,仅仅只是一个是C#,一个是Java。


        本来第一篇文章想着从观察者模式開始讲起,可是想着想着。还是把UML的类图的关系捋一下吧。不然的话类图都看不懂。翻翻我曾经写的博客,关于UML的总结着实写了好几遍了,可是近期再总结时竟然又发现了非常多之前总结不到的地方。

    所以,又验证了“学习是一个不断深入、循序渐进的过程”。不要说你对一个知识点掌握的不好。也不要找这样那样的理由。归根结底,是我们没有找到那个知识点的精髓所在。


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


        继承

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

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

        剖析:继承是类与类或者接口与接口之间最常见的关系。在Java中继承用keywordextends标识

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

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

     

      

        泛化

        同继承

        泛化也是一种继承关系,表一般与特殊的关系。

    在我看来,泛化于继承的差别仅仅是相对谁而言。比方上面那张图,能够说是子类继承父类。老虎和小狗继承动物这个父类。而子类是父类的泛化,也就是老虎和狗狗是动物这个父类的泛化。好了。泛化不做过多说明。有不同观点的欢迎在以下留言斧正!谢谢。


        实现

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

        含义:指的是一个类实现一个接口(能够是多个接口)的功能

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

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

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



        依赖:

        表示:虚线+箭头

        含义:简单的理解就是一个类A使用到了还有一个类B,并且类B的变化会影响到类A

        剖析:在大多数情况下,依赖关系体如今某个类的方法使用还有一个类的对象作为參数

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

        注意:注意箭头的方向。是依赖的一方指向被依赖的一方

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



        关联关系——聚合:

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

        含义:是关联关系的一种特例,表示总体与部分之间的关系。是一种弱的拥有关系;

              而且总体与部分不在一个生命周期内,是可分离的

        剖析:详细的体现是A对象能够包括B对象。可是B对象不是A对象的一部分;

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

        注意:注意方向,空心菱形指向总体,箭头一端指向的是部分



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

        含义:是关联关系的一种特例。表示总体与部分之间的关系。是一种强的拥有关系。

              而且总体与部分在一个生命周期内,体现了严格的总体与部分关系,是不可分离的

        剖析:详细的体现是A对象能够包括B对象,可是B对象是A对象的一部分;

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

        注意:注意方向,实心菱形指向总体,箭头一端指向的是部分




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

     

       

  • 相关阅读:
    LTE-TDD随机接入过程(3)-RAR(MSG2)以及MSG1的重传
    《javascript设计模式》读书笔记一(接口)
    数据结构——算法之(033)(两个有序单链表合并为一个有序的单链表)
    利用redis和php-resque实现后台任务
    最能毁掉程序猿健康的几件事
    springMVC4(11)使用注解完毕数据格式化
    Linux
    Linux
    Linux
    Fluent_Python_Part4面向对象,11-iface-abc,协议(接口),抽象基类
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7039930.html
Copyright © 2020-2023  润新知