软件架构设计:软件Software架构设计的 3个维度

  架构设计是个非常大话题不管写几篇文章接触到始终只是冰山更多是实战中去体会这篇文章主要介绍面向对象OO、面向方面AOP和面向服务SOA这 3个要素在架构设计中位置和作用

  架构设计有 3个维度或者说是我们在考虑架构时需要研究 3个方向

  这 3个维度分别为面向对象、面向方面、面向服务

  这 3个维度可以看作是正交但区别维度会互相印证互相支撑整个架构示意图如图所示

软件Software架构设计<img src='/icons/13486de.gif' /> 3个维度

  图:架构 3维度结构图

  面向对象

  面向对象技术最初是从面向对象设计开始出现以上世纪60年代Simula语言为标志并在Smalltalk语言完善和标准化过程中得到更多扩展和对以前思想重新注解

  上世纪80年代中后期面向对象设计逐渐成熟被计算机界理解和接受人们又开始进步考虑面向对象开发问题直到现在面向对象已经成为种非常流行编程方式以及软件Software设计架构

  面向对象提出有 3个主要目标:重用性、灵活性和扩展性强调对象“抽象”、“封装”、“继承”和“多态”它能让人们以更加接近于现实世界方式来研究这点可以说是面向对象最大进步

  在OO思想运用上业界出现了很多好经验和窍门技巧从而涌现出大量设计模式可以说面向对象是系统分析和设计时个很重要方面

  面向方面

  面向方面最初来源于hook技术本质上就是满足扩展需求可以在中自由扩展功能

  面向方面不仅仅是门编程技术同样也是种架构设计思路如果说OO是纵向地分析、切割整个系统那么可以认为AOP是横向地对系统作切片

  简单地理解OO和AOP分别从两个区别角度给我们提供了分析系统思路面向方面可以弥补面向对象缺陷两种方式有机结合在可以更加有效地对系统进行分析

  我们认为OO是接近于人类认识自然思维方式但对于东方而言却并不定是这样

  当西方人看到个复杂系统时候只会有种思路就是“分解”将系统分解成然后每个部分进行研究

  当东方人看到个复杂系统时候更多地会关注系统中存在关系将系统作为个有机整体进行研究这也是东方和西方在事物看法上存在差异

  这两种思维方式都没有问题如果结合起来分析问题解决问题会更好面向对象和面向方面也同样如此都能对应到人类认识自然思维方式上

  面向服务

  面向服务可以说是最近炒得比较火热概念包括现在提到SaaS(Software as a service)软件Software即服务准确而言面向服务不仅仅是软件Software行业概念这个要从社会产业结构说起

  社会产业总共分为 3个产业农业第 2产业工业第 3产业服务业最早社会主要产业是第产业农业将近有几万年历史

  十 8世纪下半叶在英国开始工业革命对人们生活产生了根本性影响社会主要产业成了第 2产业工业

  现在仍然属于工业时代或者有人说“后工业时代”而在后工业时代社会经济体制必定要向第 3产业服务业逐渐转型面向服务其实是社会经济体制重心种迁移

  还是说回到软件Software行业社会主要产业将转变成服务业自然软件Software行业也会出现对应变化那就是这里提到面向服务面向服务今后会影响到软件Software交付模式会对整个软件Software行业体制产生影响

  而说到架构层面面向服务是系统发布功能种方式并且基于这种方式下区别系统的间能有效地通信、协作常见实现技术就是Web Service

  软件Software全局观

  软件Software架构设计 3个维度:面向对象、面向方面、面向服务

  最年长个维度就是面向对象发展了好几十年也是相对而言比较成熟个维度它解决问题是系统内部结构设计

  面向方面思想提出能够弥补面向对象缺陷面向对象方式不能实现横切关注点分离而面向方面正是为了解决这个问题面向方面和面向对象样都是解决系统内部结构设计

  面向服务更多是涉及到系统外部简单地说就是发布功能它并不关注系统内部结构实现所以说面向服务和面向对象或者面向方面并不冲突

  这 3个维度并不是绝对孤立它们的间会互相影响、制约相互发展我们在分析架构时候需要同时考虑到这 3个维度问题这样有助于我们设计出更加优秀架构

Tags:  维度统计 软件架构设计

延伸阅读

最新评论

发表评论