zoukankan      html  css  js  c++  java
  • 名词介绍

    转自 :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. 可重用性
        • 通过重用开发软件
        • 开发软件时考虑重用
  • 相关阅读:
    执行sudo命令时command not found的解决办法
    CentOS7编译安装libc++和libc++abi
    CentOS 7 编译安装clang+llvm
    如何使用 Issue 管理软件项目?
    西门子 S7-300 PLC 从入门到精通的100个经典问题
    PLC_SIM 出现I/O访问错误-技术论坛-工业支持中心-西门子中国
    C# Lambda表达式
    C# Task中的Func, Action, Async与Await的使用
    C#委托的介绍(delegate、Action、Func、predicate)
    委托 你怎么看?
  • 原文地址:https://www.cnblogs.com/tomblogblog/p/4353481.html
Copyright © 2011-2022 走看看