• 面向对象分析与设计(第三版) 读书笔记


    系统:
    所有系统都有子系统,所有系统都是更大系统的组成部分,一个系统所提供的价值肯定来自于各个组成部分之间的相互关系,而不是来自于单个的组成部分。

    评价类的设计是否良好的指标:

    • 耦合
    • 内聚
    • 完整性:足够描述某个抽象全部有意义的特征
    • 基础性:对象的接口只提供它的基本行为。

    类方法的设计准则:

    • 可复用性
    • 复杂性
    • 相关性:这个方法与打算放入的类型之间的相关程度如何?依赖于类型的内部细节吗?

    继承关系和聚合关系的选择:
    只有当B是一种A时,才适合继承,否则聚合比继承关系更合适。

    测试:

    • 单元测试
    • 组件测试
    • 系统测试

    复用:
    归纳常用方法、机制、设计模式和框架,建立为系统服务的标准基础库。

    专人负责领导复用活动。复用在短期内会消耗一定的资源,但是将获得长期的汇报。

    面向对象分析方法

    1、经典分析

    候选类和对象通常来自:

    • 实物 汽车、压力传感器
    • 角色 老师 学生
    • 事件 着陆 请求
    • 交互 借贷 会议
    • 地点

    2、行为分析
    关注动态的行为,将这些行为作为类和对象的主要来源。

    理解谁发起了活动,谁参与了活动,扮演重要角色的发起者和参与者被确定为对象,我们针对这些角色,将行为职责分配到这些对象上。

    3、领域分析

    咨询领域专家(用户)

    4、结构化分析

    5、用例分析

    面向对象设计的一些经验

    面向对象设计是增量式、迭代式的:当在一个类型层次结构中设计类时,并非总是从基类开始,然后创建子类。通常,会创建一些看起来不相似的类型,意识到它们是相关的,然后将它们的共同特点分离出来,放到一个或多个基类中…通常需要这样上上下下做几次才能得到一个完整和正确的类体系。

    类提升:有时候我们可能发现一个通用的子类,并将它在类结构中上移,从而增加共享度,这称为类提升。

    粒度规模冲突:我们可能罚球线某个类太特殊化or一般化,因此从它派生出一个子类很困难,因为语义上的差距太大,这称为粒度规模冲突。

  • 相关阅读:
    为什么做的串口助手不能获取到虚拟串口,不知道是哪里出问题了,希望会的朋友解答一下,非常非常感谢
    大数据开发-Hadoop分布式集群搭建
    【iOS】—— SDWebImage源码学习(2)(源码解读)
    Python操作lxml库(基础篇)
    图解KafkaConsumer SyncGroupRequest请求流程
    使用 Docker 部署 TaleBook 私人书籍管理系统
    文献 | “科研狗”不配拥有健康的心理?
    阿里面试:我们为什么要分库分表
    魔搭 modelscope
    B+tree 与 B-tree区别
  • 原文地址:https://blog.csdn.net/HandsomeHong/article/details/126563034