十二、面向对象
1,概念
对象:对象名,属性,方法
类:实体类(人)、接口类(交互)、控制类(控制流)
抽象(单一化描述)、封装(信息隐蔽)、继承(层次关系,父类和子类)
多态(参数多态(不同参数类型))、包含多态(父子类型关系)、过载多态(重载,一个名字的不同含义)、强制多态(强制类型转换)
多态不同的对象收到同一个消息时产生完全不同的结果。包括参数多态(不同类型参数多种结构类型)、包含多态(父子类型关系)、过载多态(类似于重载,一个名字不同含义)、强制多态(强制类型转换)四种类型。多态由继承机制支持,将通用消息放在抽象层,具体不同的功能实现放在低层。
覆盖:子类重新定义一个同名同参方法
函数重载:与父类子类无关,函数同名不同参数
绑定:
编译时,静态绑定
运行时,动态绑定
2,面向对象设计原则
solid原则
单一职责原则:(Single Responsibility Principle, SRP) 一个类只负责一个职责
开闭原则:(Open-Closed Principle, OCP) 对扩展开放,对修改关闭
里氏代换原则:(Liskov Substitution Principle, LSP) 所有引用基类的地方必须能透明地使用其子类的对象。使用子类的实例来替代父类的实例,而不引发问题
依赖倒转原则:(Dependence Inversion Principle, DIP) 面向接口编程
接口隔离原则:(Interface Segregation Principle, ISP) 客户端不应该依赖那些它不需要的接口(更大粒度的单一职责原则,不局限于类)
合成复用原则;(Composite Reuse Principle, CRP) 减少继承,多使用对象组合
迪米特法则;(Law of Demeter, LoD) 最小知识原则
3,UML图:
UML三要素
1,构造块 1,事物(结构事物、行为(交互、行为、状态机)、分组(包)、注释(注解))
2,关系(依赖(虚线实心三角形,一个事物依赖于另一个事务)、关联(组合(强关联)、聚合(弱关联)部分和整体的关系)、泛化(实线空心三角形,父类和子类)、实现(虚线空,保证执行的契约)
3,图
2,规则、
3,公共机制
虚空实 实空泛 虚实依、关联
类图:静态图。包含属性和方法,表示类的关系
对象图:静态图,类图的快照
用例图(用例和参与者的关系静态图):(包含(include_必须做,有顺序)拓展(extend 反向尽头_可做)泛化(实空泛_多选择))
构件图(组件图):反应组件之间的组织和依赖。(有特殊的组件标志) 静态图
部署图:静 物理模块分布
交互图:通信图和顺序图统称
1,序列图(顺序图、时序图):以时间顺序组织对象之间的交互活动。动态图,有时间线
同步消息实,异步消息空,返回消息虚
2,通信图(协作图):不强调时间顺序
状态图:状态机,有黑点。动态图
活动图:特殊的状态图 有水平粗线
4,设计模式
分为三类,创建型模式主要是处理创建对象,结构型模式主要是处理类和对象的组合搭配,行为型模式主要是描述类或者对象的交互行为,具体如下(红色粗体记忆关键字表示常考必须记住的):
创建型 单(单例,一个类一个实例,唯一)抽(抽象工厂,抽象接口)原(原型,复制,拷贝)件(建造者,类和构造分离)厂(工厂,子类决定实例化)
结构型 外(外观,对外统一,统一外观)桥(桥接,抽象和现实分离)组(组合,整体-部分,树形)元(享元,细粒度,共享)带(代理,代理控制)配(适配器,兼容转换)饰(装饰,附加职责,添加新的功能)
行为型 观(观察者,自动更新,订阅)摩(模板方法,步骤)对(迭代器,顺序访问,不暴露内部)策(策略,算法替换,解决问题的多种方法),
责(职责链,传递请求)令(命令,日志可撤销,遥控器)解(解释器,虚拟机,编译)放(访问者,数据操作分离),
戒(中介者,不直接引用)忘(备忘录,保存恢复还原)台(状态,状态变类)
评论交流
欢迎留下你的想法