关于uml类图使用与软件架构的一些想法
Posted 燕山雷震子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于uml类图使用与软件架构的一些想法相关的知识,希望对你有一定的参考价值。
关于类关系的记忆辅助
箭头的方向:从子类指向父类
·定义子类需要通过 extends 关键字指定父类
·子类一定是知道父类定义的,但父类并不知道子类的定义
·只有知道对方信息时才能指向对方
·箭头的方向是从子类指向父类
继承/实现:用线条连接两个类,空心三角箭头表示继承或实现
·实线表示继承,是is-a的关系,表示扩展,不虚,很结实
·虚线表示实现,虚线代表“虚”无实体
关联/依赖:用线条连接两个类,普通箭头表示关联或依赖
·虚线表示依赖关系:临时用一下,若即若离,虚无缥缈,若有若无
·表示一种使用关系,一个类需要借助另一个类来实现功能
·一般一个类将另一个类作为参数使用,或作为返回值
·实线表示关联关系:关系稳定,实打实的关系
·表示一个类对象和另一个类对象有关联
·通常一个类中有另一个类对象作为属性
组合/聚合:用菱形表示:像一个盛东西的器皿
·聚合:空心菱形,代表空器皿里可以放很多相同的东西,聚集在一起(箭头方向所指的类)
·整体和局部的关系,两者有独立的生命周期,是 has-a 的关系
·弱关系,消极的词:弱-空
·组合:实心菱形,代表器皿里已经有实体结构的存在,生死与共
·整体与局部的关系,和聚合关系对比,关系更加强烈,两者具有相同的生命周期,contains-a 的关系
·强关系,积极的词;强-满
辅助记忆的图形实例:
关于软件架构
代码复用
扩展性
需求变化是程序员生命中唯一不变的事情。
你创建了一个使用方形按钮的 GUI 框架,但几个月后开始流行原型按钮。
首先,在完成了第一版的程序后,我们就应该做好了从头开始优化重写代码的准备,因为现在你已经能在很多方面更好的理解问题了,同时在专业水平上也有所提高,所以之前的代码现在看上去可能会显得很糟糕。
其次,可能是在你掌控之外的某些事情发生了变化,这也是导致许多开发团队转变最初想法的原因。比如,每位在网络应用中使用 Flash 的开发者都必须重新开发或移植代码,因为不断地有浏览器停止对 Flash 格式地支持。
最后,可能是需求的改变,之前你的客户对当前版本的程序感到满意,但是现在希望对程序进行 11 个“小小”的改动,使其可完成原始计划阶段中完全没有提到的功能,新增或改变功能。
当然这也有好的一面,如果有人要求你对程序进行修改,至少说明还有人关心它。因此在设计程序架构时,有经验的开发者都会尽量选择支持未来任何可能变更的方式。
结语
今天的分享就到这里,我是雷记,专注于分享关于开发编程相关的技术干货,如果今日的分享对您有帮助的话,还望不吝关注点赞,这对我很重要!如果各位在开发过程中遇到棘手问题,可以扫描下图二维码加入,和雷记与其他小伙伴一起探讨解决,让我们努力让每一个问题都得到解决!
以上是关于关于uml类图使用与软件架构的一些想法的主要内容,如果未能解决你的问题,请参考以下文章