面向对象分析与设计

该笔记探讨了面向对象设计的关键概念,包括面向对象思维方式的核心理念,如接口与实现的分离,以及开闭原则、依赖倒置原则、接口分离原则。强调了设计时应关注用户需求,遵循开闭原则以保持软件的可扩展性和稳定性,并提出了好的系统设计应具备的特征。同时,指出了在面向对象设计中应注意的问题,以保证设计的质量和适应性。
摘要由CSDN通过智能技术生成
  • 为学堂在线清华大学《软件工程》第十章部分视频笔记

  • 目录

    面向对象设计

    第一个视频

    面向对象设计过程

    面向对象思维方式的核心理念

    第二个视频

    开闭原则

    如何知道子类是否符合父类的要求——子类宽入严出

    依赖倒置原则

    接口分离原则

    好的系统设计的特征

    OO设计时要注意的问题


  • 面向对象设计

  • 我们可以利用面向对象解决需求变化,设计创新,软件质量持续提升等问题,但是面向对象本身并不能保证你的设计成为优秀的设计
    面向对象最主要应对的问题为数据封装和减少模块间的依赖性
    • 第一个视频

      • 面向对象设计过程


        最主要的 步骤为识别对象类
      • 面向对象思维方式的核心理念

        • 区分接口与实现
          • 接口的标准化vs实现的演化
            确保接口与实现的分离,定义标准的接口,保证了程序结构的稳定性
        • 从抽象到具体
          • 抽象的接口
            抽象的接口∶向用户暴露尽可能少的实现细节,让用户知道的关于类的内部实现细节越少越好
            ​·只给看必须的
            ·只看公开的
            ·只为用户的业务需求考虑
            最小用户负担原则
          • 确定用户
            ·用户是谁?重要程度高达50%
            ·面向服务的原则
          • 确定对象行为
            用例!!
            以往的设计决策在我们定义抽象接口时候会发生变化
          • 识别环境约束
            环境对对象的行为施加约束限制条件前置条件/后置条件/例外条件...
          • 确定实现细节
            公共接口以外的内容都可以看做是实现相关的用户永远无需关注实现细节
            ·方法的命名和参数定义(name and parameter list)
            ​ ·编码实现
            对实现的修改无须牵涉接口·实现为用户的期望提供解决方案
            接口从用户的角度看待对象,实现则是对象的果核和果肉·实现中包含有描述对象状态的代码
        • 最小接口原则
    • 第二个视频

      • 开闭原则


        ·软件实体在扩展性方面应该是开放的,而在更改性方面应该是封闭的。
      • 如何知道子类是否符合父类的要求——子类宽入严出

        • 契约式设计(Design by Contract)
          为了满足Liskov替换原则,设计时要求:
          ·子类中方法的前置条件不能强于父类中相应方法的前置条件。
          ​·子类中方法的后置条件不能弱于父类中相应方法的后置条件。
      • 依赖倒置原则


        依赖倒置原则指的是依赖关系应该是尽量依赖接口(或抽象类),而不是依赖于具体类。
      • 接口分离原则


        在设计时采用多个和特定客户类(client)有关的接口要比采用一个通用的接口要好。
      • 好的系统设计的特征

      • OO设计时要注意的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值