设计模式学习--扎马步
台上一分钟,台下十年功!
要展现设计模式这样华丽的舞剧那就必须打好坚实的基础!只有内功深厚了才能够所向披靡……
个人认为学习设计模式之前就必须会拿UML这一利器!
UML作为一种独门暗器在软件行业已经独领风骚数百余年(牛是吹出来DI~),因此要想在这个行业中成为东方不败那就得下苦功夫学习。废话少说,下面开始出招了:
第一招:类(CLASS)
注释:加号(+)表示具有公共可见性
减号(-)表示私有可见性
#号表示受保护的可见性
省略这些修饰符表示具有internal(命名空间)级别的可见性
如果属性或操作具有下划线,表明它是静态的
操作中,可同时列出它接受的参数,以及返回类型
第二招:依赖(Dependency)
通过方法调用而获得的一个对象的引用那么这两个类就有了依赖关系,一般是通过方法得到引用的实力,所以用的是虚的箭头
第三招:关联(Asscioation)
箭头是可选的,它用于指定导航能力:如果没有箭头,暗示是一种双向的导航能力,在程序中关联转换为一个类实例的变量,多重性(Multiplicity)修饰符暗示着实例之间的关系。
第四招:聚合(Aggregation)
聚合是关联的一种形式,聚合也转换成Java中的一个实例作用域变量,这一点和关联是一样的!关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。
第五招:合成(Composition)
合成是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。
第六招:泛化(Generalization)
泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。
第七招:实现(Realization)
实例关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。