Leo Technology Stack Leo Technology Stack
首页
  • Android
  • Web
  • SpringBoot
  • 数据库
  • Docker
  • Netty
  • KubeSphere
  • Linux
  • Android Framework
  • 开源库
思维
  • 面试
  • 投资理财
  • 杂事记录
  • 索引

    • 分类
    • 标签
    • 归档
  • 开源项目

    • Advance Markdown
    • AnLibrary (opens new window)

Leo

不知名的架构师
首页
  • Android
  • Web
  • SpringBoot
  • 数据库
  • Docker
  • Netty
  • KubeSphere
  • Linux
  • Android Framework
  • 开源库
思维
  • 面试
  • 投资理财
  • 杂事记录
  • 索引

    • 分类
    • 标签
    • 归档
  • 开源项目

    • Advance Markdown
    • AnLibrary (opens new window)
  • Design Patterns

    • 六大基本原则
      • 1. 单一职责原则
      • 2. 开闭原则
      • 3. 里氏替换原则
      • 4. 依赖导致原则
      • 5. 接口隔离原则
      • 6. 迪米特原则--最少知识原则
    • 设计原则总结
      • 架构师的目的是为了什么
      • notes
      • thinking
      • Design Patterns
      Leo
      2021-04-22
      六大基本原则
      1. 单一职责原则
      2. 开闭原则
      3. 里氏替换原则
      4. 依赖导致原则
      5. 接口隔离原则
      6. 迪米特原则--最少知识原则
      设计原则总结
      架构师的目的是为了什么

      Design Patterns

      # 六大基本原则

      # 1. 单一职责原则

      全称:Single Responsibility Principle

      缩写:SRP

      定义:一个类应该有且只有一个变化的原因(There should never be more than one reason for a class to change.)

      定义解读:《UNIX编程艺术》中提到的一句话和这篇文章很贴切:Do one thing,and do it well。通俗的说,即一个类只负责一项职责

      # 2. 开闭原则

      全称:Open Close Principle

      缩写:OCP

      定义:一个软件实体(如类、模块、函数)应当对扩展开放,对修改关闭。

      定义解读:

      # 3. 里氏替换原则

      全称:Liskov Substitution principle

      缩写:LSP

      定义:任何一个基类可以出现地方,子类一定可以出现,并且不会产生任何错误(注意:必须是父子关系)

      定义解读:第一个注意:里氏替换原则核心就是抽象(继承和接口)每一个子类都会拥有父类的方法属性

      第二个注意:开闭原则和里氏替换原则生死相依,通过里氏替换原则达到了对外开放,对修改关闭

      里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:

      • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
      • 子类中可以增加自己特有的方法。
      • 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
      • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

      # 4. 依赖导致原则

      全称:Dependence Inversion Principle

      缩写:DIP

      定义:高层次模块不依赖于低层次模块实现细节

      定义解读:说白了,依赖于抽象,不依赖具体实现指导子类实现功能细节,依赖倒置原则的核心就是要我们面向接口编程,理解了面向接口编程,也就理解了依赖倒置。

      # 5. 接口隔离原则

      全称:Interface Segregation Principle

      缩写:ISP

      定义:类与类之间的依赖关系应该是建立在最小的接口上

      # 6. 迪米特原则--最少知识原则

      全称:Least Knowledge Principle

      缩写:LKP

      定义:一个对象应该对其他的对象有最少的了解

      # 设计原则总结

      六大基本原则都是基于抽象(抽象类和接口)

      # 设计模式(设计模式是一种设计思想,为了可扩展性和健壮性本质是解耦)

      • 单例模式
      • 工厂模式
      • 观察者模式
      • 原型模式
      • 代理模式
      • 策略模式
      • 模板模式

      # 架构师的目的是为了什么

      • 针对开发者
      • 针对公司
      • 针对客户

      其实架构师就是编程思想

      架构师每天都在思考什么

      • 应该如何让我的系统更快
      • 如何避免系统出现瓶颈

      宏观思维,四个架构图解决三个属性

      • 四个架构图

        • 业务架构图
          阐述整体业务在一定抽象层次的高度模块化
        • 技术架构图
          用什么样的中间件体系来实现可扩展性、可伸缩性、安全性
        • 数据架构图
          用什么样的存储体系来支撑预判的一个数据规模、数据增长速度
        • 部署架构图
          使用多少台服务器、多少颗cpu以及多少个cpu内核数,还有sas、sata、ssd的一个有效配比来形成一套有机的硬件体系来保证系统的高可用性
      • 属性

        • 可扩展性
        • 可伸缩性
        • 安全性

      TOGAF (opens new window)

      编辑此页 (opens new window)
      上次更新: 2022-04-28, 11:21:32
      Theme by Leo | Copyright © 2016-2025 Leo | MIT License
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式