名词介绍

转自 :http://segmentfault.com/blog/zhaoyi/1190000002411255

非侵入性 No intrusive

  • 框架的目标之一是非侵入性(No intrusive)
  • 组件可以直接拿到另一个应用或框架之中使用
  • 增加组件的可重用性(Reusability)

容器(Container)

  • 管理对象的生成、资源取得、销毁等生命周期
  • 建立对象与对象之间的依赖关系
  • 启动容器后,所有对象直接取用,不用编写任何一行代码来产生对象,或是建立对象之间的依赖关系。

IoC

  • 控制反转 Inversion of Control
  • 依赖关系的转移
  • 依赖抽象而非实践

DI

  • 依赖注入 Dependency Injection
  • 不必自己在代码中维护对象的依赖
  • 容器自动根据配置,将依赖注入指定对象

AOP

  • Aspect-oriented programming
  • 面向方面编程
  • 无需修改任何一行程序代码,将功能加入至原先的应用程序中,也可以在不修改任何程序的情况下移除。

分层

表现层:提供服务,显示信息。
领域层:逻辑,系统中真正的核心。
数据源层:与数据库、消息系统、事务管理器及其它软件包通信。
——《企业应用架构模式》P.14

 

 

 

 

补充

很多代码背后,都是某种哲学思想的体现。

以下引用《面向模式的软件架构》卷1模式系统第六章模式与软件架构

软件架构支持技术(开发软件时要遵循的基本原则)

  1. 抽象
  2. 封装
  3. 信息隐藏
  4. 分离关注点
  5. 耦合与内聚
  6. 充分、完整、简单
  7. 策略与实现分离
    • 策略组件负责上下文相关决策,解读信息的语义和含义,将众多不同结果合并或选择参数值
    • 实现组件负责执行定义完整的算法,不需要作出与上下文相关的决策。上下文和解释是外部的,通常由传递给组件的参数提供。
  8. 接口与实现分离
    • 接口部分定义了组件提供的功能以及如何使用该组件。组件的客户端可以访问该接口。
    • 实现部分包含实现组件提供的功能的实际代码,还可能包含仅供组件内部使用的函数和数据结构。组件的客户端不能访问其实现部分。
  9. 单个引用点
    • 软件系统中的任何元素都应只声明和定义一次,避免不一致性问题。
  10. 分而治之

软件架构的非功能特性

    1. 可修改性
      • 可维护性
      • 可扩展性
      • 重组
      • 可移植性
    2. 互操作性
      • 与其它系统或环境交互
    3. 效率
    4. 可靠性
      • 容错:发生错误时确保行为正确并自行修复
      • 健壮性:对应用程序进行保护,抵御错误的使用方式和无效输入,确保发生意外错误时处于指定状态。
    5. 可测试性
    6. 可重用性
      • 通过重用开发软件
      • 开发软件时考虑重用
posted @ 2015-03-20 14:05  CodingTom  阅读(207)  评论(0编辑  收藏  举报