软件设计师笔记:面向对象设计
一、面向对象基本概念
消息是对象进行交互采用的机制,用的是异步方式
模式是经验的传承,可以被复用。
二、设计原则
一个类如果职责越多,耦合会增大。
用新的类解决问题,不提倡修改类。
李氏替换原则提倡不要盲目重载修改父类方法。
三、UML
主要了解UML的核心的图,其次对依赖关联范化实现有所了解。
规则和公共机制几乎不考。
构造块主要考关系和图。左侧是结构图(静态图),右侧是行为图(动态图)。
部署图:软件的构件应该部署在哪个硬件结点上。
用例图:系统和外部的交互关系。
顺序图:按时间顺序。
通信图:没有强调时间顺序。
活动图:和流程图的表述是一致的。
四、设计模式
4.1 设计模式的基本概念
架构模式:从全局看问题的方案。
设计模式:关心局部的设计问题。一般在构件的设计时用到
惯用法:最底层。和语言相关,就是低级的模式,即惯用法。
4.2 设计模式的分类
创建型模式:用于创建对象,为实例化新对象提供指南。用new产生对象有时灵活性不够。
工厂方法:给工厂指令,可以创建出需要的对象,要不同的对象,只需要改工厂的方法。
结构性模式:主要处理类和对象的组合问题。
行为型模式:用来描述类和对象交互的情况以及职责分配问题。
4.3 创建型模式
抽象工厂是做系列产品。比如指定要创建操作Oracle的,那么生产的对象都是Oracle相关的,不需要指定类。
构建器模式:将复杂对象分离,封装,选择需要的部分。
工厂方法模式:可以在运行时决定要创建哪一个类的对象。
原型模式:也称克隆模型,通过拷贝来创建。new创建消耗的资源比较多,原型模式效率会高一些。
单例模式:保证一个类只有一个实例。