大话设计模式读书笔记(一) 之UML类图解析学习

        虽然接触设计模式很久了,但是对几种设计模式的理解仍旧不是很深刻,这本书趣味性很强,讲解的也很详细,本人在写博客之前看了两遍,差不多花了一个多月,但在最后,几种设计模式组合来对比的时候还是有些晕,这里简单做个笔记,如有雷同,纯属巧合。

        开篇说一些废话,不得不佩服发明java的人,Sun公司,确实很牛逼,设计模式说到底就是java的继承、封装、多态、抽象四种特性的灵活运用,分析类之间的关系之前,让我们先了解一下类图,这里推荐一款线上软件ProcessOn,不用下载,线上画图神器,个人觉得还不错,各种基本需求都能实现。下面的图copy自大话设计模式这本书,看着还可以。

刚看到这个的时候是不是有点懵逼,正常,相信对于普通的初级程序猿来说,类,方法什么的还是可以看懂的,但是一些关系就看得不是很清楚了,这里就当是初级小白来讲解一下。

一、类:共分三层,分别代表类名称,类的全局变量以及类中的方法。这里需要注意的是前面的+号和-号,分别代表着变量或者方法的不同作用范围,其中“+”代表public,“-”代表private,“#”代表protected,不写代表default。具体实例如下图所示,后面的介绍也会贴上例子,但不再浪费笔墨。


二、接口:接口有两种表示方式分别是普通接口表示法(飞翔)和棒棒糖表示法(讲人话),其中普通表示法专注于行为,棒棒糖表示法专注于实现,具体应用那种方法看你自己的专注点。

                         

三、类之间的继承:继承关系我们用空心三角形+实线来表示


四、类与接口之间的实现关系:我们用空心三角形+虚线来表示,这里大雁实现了飞翔接口的飞的方法,棒棒糖表示法只会在棒棒糖旁边写上相应接口名称,没有具体接口方法,这里专注于子类的具体实现


五、类之间的关联关系:我们用箭头+实线来表示,这里表示两个类之间有关系,它使得一个类知道另一个类的属性或者方法,可以是双向的,也可以是单向的,在下图的实例中,企鹅需要知道气候的变换,从而有迁徙行为,因此这里企鹅关联气候。


六、聚合关系:我们用空心菱形+实线箭头来表示,聚合表示的是一种弱的拥有关系,表示的是大雁可以独立于雁群而独立存在,然而雁群却是由多只大雁组合而成


七、合成关系(组合关系):我们用实心菱形+实线来表示,组合表示的是一种强的拥有关系,体现出来强烈的部分和整体关系,部分和整体的生命周期一致,这里每只鸟拥有两只翅膀,这里可以关注下菱形图案下的数字1和箭头下的数字2,表示出来组合关系,这被称为基数,表示这一端的类可以拥有几个实例,如果一个类可能拥有无数个实例,可以用‘n’来表示。关联关系和聚合关系也可以拥有基数,当然也可以不写。


八、依赖关系:我们用虚线箭头来表示。这里动物进行新陈代谢需要氧气和水,传入类型不应该是String,应该是对应的氧气和水的对象,这里画的图有些问题...


最后总结一下:

1、各种关系之间的强弱关系:实现=继承>组合>聚合>关联>依赖

2、关联、聚合、组合关系我们要根据具体的业务逻辑来判断,单单仅凭一段代码是看不出来的

3、关联和依赖,关联关系更强,两个对象属于平等关系,可以相互引用,而依赖关系指的是一个对象的实现必须依赖于两一个对象,需要传入一个对象才能实现本身功能。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值