agile ppp第三次

敏捷设计以及原则

​ 敏捷设计:是一个持续的应用原则,模式以及实践来改进软件的结构和可读性的过程

先了解什么是拙劣的软件设计,即具备以下特点的软件设计:

​ 软件设计的“臭味”

  • 僵化性:设计难以改变

  • 脆弱性:设计易于遭到破坏

  • 牢固性: 设计难以重用

  • 粘滞性:难以做正确的事情

  • 不必要的复杂性:过分设计

  • 不必要的重复:过分拷贝粘贴

  • 晦涩性:混乱表达

​ 为了消除这些臭味,采用以下原则:

  • SRP:单一职责原则
  • OCP:开放,封闭原则
  • LSP:liskov替换原则
  • DIP:依赖倒置原则
  • ISP:接口隔离原则

SRP:把职责分离到单独的类中,因为每一个职责都是变化的一个轴线。 用户需求变化---->类职 责变化。

​ 职责:引起变化的原因

​ 业务规则决不应该和对于持久化的控制耦合在一起

OCP:the open-closed principle

  • 对于扩展是开放的(open for extension)
  • 对于更改是封闭的(closed for modification)

理解:模块的行为可扩展,应用需求改变,对模块进行扩展,使其具有满足那些改变的新行为

​ 但对模块行为进行扩展时,不必改变模块的源代码或二进制代码

OCP是面向对象设计的核心所在(灵活性,可重用性,可维护)

需要对程序中呈现频繁变化的部分做出抽象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 面向对象的3个基本要素: 封装、继承、多态 面向对象的5个基本设计原则: 单一职责原则(Single-Respos...
    badcyc阅读 4,402评论 0 4
  • 预习笔记(day1-9)-------张维斌 第1章计算机硬件与组成原理 1、计算机硬件分类:主机(CPU、内存、...
    zwb_jianshu阅读 3,222评论 0 0
  • 砌井模块 砌井砖、砌井模块、砌井模块砖、混凝土模块、混凝土模块砖、检查井模块、检查井模块砖、检查井砌块、检查井砌块...
    a384584f06fe阅读 1,950评论 0 0
  • 昨天下午下班开车回家,突然发现车子有异响,赶紧把车停到路边查看。我去!右前轮完全瘪了下去。这下惨了,不知道是爆胎还...
    耿耿广州阅读 3,003评论 1 3
  • 南通趁早的小朋友推荐了一本书《给 40岁的崭新开始》,在亚马逊上的时候,发现作者是松浦弥太郎,我在苏州诚品曾经匆匆...
    薇薇安的30天阅读 5,408评论 0 5

友情链接更多精彩内容