架构设计(什么是架构师及UML建模)

自己从事iOS开发已经有3-4年了,从不懂架构设计,慢慢积累开发经验及业务学习。自己对架构有了新感觉,把自己了解的架构设计分享给大家,希望大家也能学习到架构的魅力。

举个例子,比如说房屋的建造,需要设计师,把图纸设计出来。架构师就相当设计图纸的工程师。然而像工地打工的就相当普通程序员。

好了进入今天的正题

1.什么是UML建模?

  • UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言
  • 用模型元素来组建整个系统的模型
  • 模型元素包括系统中的类、类和类之间的关联、类的实例相互配合实现系统的动态行为等
  • 举个例子:比如我们描述未来设计的房子?
    • 第一种方式,对房子建造设计描述(程序开发)
    • 第二种方式,进行画出房子的结构图 (UML建模语言)
  • UML对语义的描述使开发者能在语义上取得一致认识,消除了因人
    而异的表达方法所造成的影响。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 与2800+iOS开发者一起交流学习成长!

UML图的构成部分
  • 事物(Things):在UML建模语言事物,你可以简单的认为是元素。比如我们说的汽车零件(轮子,方向盘等等)
  • 关系(Relationships):元素之间关系(类似于:汽车零件之间的关系)
  • 图(Diagrams): UML建模(类似于制造汽车,画汽车图)

这就是UML,原本您会觉得很高深,其实就这样。

2.UML怎么使用?

2.1-建模工具(下载地址:http://staruml.io/download)
image
2.2-建模关系
  • 泛化关系--generalization(就是继承关系)
image

图中左边是创建的父类Company,属性name
图中右边是创建的子类SonCompany,属性age.
当子类继承父类时,箭头指向父类,就是泛化关系,也就是所说的继承关系。

  • 实现关系--realization(在iOS中类似协议,在java中类似于接口)
image

图中左边 是接口及接口方法
图中右边是实现类
通过接口或者协议实现方法

  • 依赖关系--dependency
什么是依赖关系?
例如:已知A类和B类,在A类中引用B类,这种关系是`偶然性`,`临时性`,同时B类中发生了变化,
影响到A类,这种关系就称之为依赖关系。

image

比如:我早上去图书馆看书
我可以今天去看书,明天去看,不是天天去看书,体现了偶然性和临时性。如果这个图书馆不存在了,会影响到我,不能去看书了。

  • 关联关系(单向关联)--Directed Association
    关联关系其实本质就是依赖关系的特殊情况,两个类属于同一个层次
    例如:
    人看书,人若想看书,必须依赖书。而书不会给人带来依赖关系。
image
  • 关联关系-双向关联 --Association
    关联关系其实本质就是依赖关系的特殊情况
    比如:用户和订单(用户保存订单号,订单对应用户)
image
`1`表示:单个
`0-1`表示:可以是0,也可以是1
`1..*`:表示至少有一个
`0..*`:表示可以使0->无穷大
`*`:表示任意

  • 聚合关系(关联关系的特例)--Aggregation
    强调整体和部分
    整体和部分可以分离,各自有各自的生命周期,互不干扰,部分强调共享.

比如: 手机和电池,电池的生命周期不影响手机的生命周期.
如果电池坏了,是不是手机也需要换掉呢?答案是No.
再换一块电池就可以使用了.

image
  • 组合关系--Composition
    强调整体和部分
    整体和部分不可以分离,共享生命周期,整体生命周期结束意味部分生命周期结束
    比如:硬件和软件,公司和部门
    硬件不存在了,软件也不能用了.

    image

3.UML建模模型图

  • 用例图--Use Case Diagram

    image

    自驾旅游,汽车加油对于自驾旅游是一种包含的关系(include);
    我们要吃饭是一种扩展关系(extend);
    司机和自驾旅游一种关联关系.

  • 类图--Class Diagram
    比如:公司类,科技有限公司

    image

公司与科技有限公司之间的泛化关系,公司与京东之间的泛化关系.也成为继承关系.

  • 顺序图(时序图)--Sequence Diagram
    比如:微信支付的流程图

    image

4.总结

以上内容是对UML建模,UML使用,UML建模关系及UML建模模型图等内容的介绍.也许你已经了解到了UML建模的魅力.它可以让你清晰的了解架构操作及交互.
如果您想了解更多架构模式设计呢?
请继续关注我
如果您喜欢这篇文章,请记得点赞哦.
如果有什么问题?我们可以相互讨论.

文章来源于网络,如有侵权,请联系小编删除。

推荐阅读更多精彩内容