继承 多态 封装 抽象
用例描述:
用例名 用例编号
参与者
用例描述
前置条件
后置条件
基本流程
替代流程
领域模型是对概念类或者对象的可视化
CRC判断是否是用例
CRC 类职责协作者
候选的关键抽象 排除原因 选定的名字
有用用例的测试:老板测试 EBP问题 规模测试 前两个强调可量化有价值的结果
1、老板测试:系统是否有价值,是否能解决不完美
2、基本业务测试:是否能在特定时间点特点地点具体业务范围内能完成
用例类型:基础用例,具体用例,抽象用例,附加用例
用例之间的关系:包含和扩展,还有泛化
识别现实世界的对象的方法:名词,分类列表法,模型
名词可能是一个属性就不是概念类,同义词,无关的类,角色类
能不能用一个文字或数字来描述,能就不是概念类
内延:需要用多个属性来定义。外延:存在多个实例
类之间的关系:
虚线加尖头 是依赖
实线 是关联
实线加空心四边形 聚合
实线加实心四边形 组合
实线加空心三角形 泛化
虚线加空心三角形 实现
面向对象设计原则
- 单一职责原则(Single Responsibility Principle)
每一个类应该专注于做一件事情。 - 里氏替换原则(Liskov Substitution Principle)
超类存在的地方,子类是可以替换的。子类不能添加任何父类没有的附加约束
“子类对象必须可以替换基类对象” - 依赖倒置原则(Dependence Inversion Principle)
实现尽量依赖抽象,不依赖具体实现。 - 接口隔离原则(Interface Segregation Principle)
应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。 - 启发式原则
任何变量都不应该拥有指向具体类的指针或者引用
任何类都不应该从具体类派生
任何方法都不应该改写其任何基类中已经实现的方法 - 开闭原则(Open Close Principle)
面向扩展开放,面向修改关闭。
设计目标:可扩展 灵活性 可插入性
面向对象设计的好处:易维护,质量高,效率高,易扩展
九大设计模式 GRASP 通用职责分配软件模式
创建者
信息专家
低耦合
控制器
高内聚
多态
纯虚构
间接性
防止变异
网友评论