UML知识点对比学习
UML视频看完了,在这个过程中,也记了笔记,画图的时候,才发现有的图符用起来不知道如何抉择,例如include和extend。故决定以此为引,将一些可以对比学习的概念汇总到一起学习,从而起到加深理解的作用。 include与extend先看两张图,结合定义,我认为include与extend二者的区别在于 必须与非必须。include的内在含义是必须拥有,就像下边这张图,一个总的功能需要其他的子功能构成,保持功能的完整性,缺一不可。
扩展是
非必须
的,可有可无,但是有的话,可以让我们实现的功能更加贴心和人性化,就像下边的这张图,执行查询操作后,我们能想象出这已经实现了查询功能,令人觉得贴心的是查询出的结果可以导出或打印。锦上添花,就是extend的魅力所在。
类图的4种关系 (1)关联 ——普通关联 ——组合 ——聚合 (2)依赖 (3)泛化 (4)实现 组合和聚合 聚合:整体和部分之间的关系是松耦合,即不存在先有什么后有什么的问题,例如:书架和书没有先后关系。
综上所述:聚合和组合的区别在于生命期的管理:聚合——火车不存在,但是引擎可以独立存在;组合——链表不存在了,节点就不存在了。 依赖和泛化依赖:是一种使用关系,类A中的方法或是参数需要用到类B,二者时间就是依赖关系,虚线箭头指向被依赖方。 泛化:实际上描述的是类和类之间的继承关系。 ——单重继承:相当于师承一人。 相关图的比较>活动图和状态图前者侧重从行为的动作描述,后者侧重从行为的结果描述。 >顺序图和协作图顺序图,强调消息的时间顺序,通过生命线体现对象间的交互关系(时间顺序) 协作图,强调参加交互的对象的组织,通过数字标号顺序体现对象间的交互关系(对象关系) 模式和框架的比较模式:支持软件结构和设计的重用(宽泛) 框架:支持细节设计和代码的重用(具体) 形象地说:设计模式就像是房屋中墙壁的装修设计方式,是小单元的架构元素,使用范围更广,与应用的相关性更小;框架就像是房屋。 面向对象和面向过程面向对象和面向过程的思维方式不一样,前者从类出发,考虑属性和方法,以及类和类之间的关系;后者从模块出发。 比如拿学生早上起来的事情来说说这种面向过程吧,粗略的可以将过程拟为: (1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校 这4步就是一步一步地完成,它的顺序很重要,你只须一个一个地实现就行了。而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不能体现出来。
好了,就总结到这里,对比是一种非常好的加深理解的方式,与实例搭档起来更合适! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |