• 名词介绍


    转自 :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. 可重用性
        • 通过重用开发软件
        • 开发软件时考虑重用
  • 相关阅读:
    redis 秒杀设计,常用命令
    wamp下配置多域名和访问路径的方法
    git commit 因执行yarn , npm,报错推送不了
    taro bug--小程序报错Error: 未找到入口 sitemap.json 文件,或者文件读取失败,请检查后重新编译。
    vscode引用相对路径,scss时路径报错问题解决
    space-between与space-around的区别
    Android可设置任意高度的TextView,如:设置0.5px设置0.1px等等
    Android可以打开微信支付,但是没法调起小程序支付
    dask
    Joblib-lightweight piplining tool
  • 原文地址:https://www.cnblogs.com/tomblogblog/p/4353481.html
Copyright © 2020-2023  润新知