OOAD学习笔记
来源:互联网 发布:金庸群侠传 for mac 编辑:程序博客网 时间:2024/06/06 12:35
OOAD面向对象编程 面向对象设计
OOAD是一套集编程思想、方法、原则、模型、
解决方案为一体的编程模式,贯穿整个分析、设计
编程、测试、维护。
对象是什么
1、是一个客观存在的、唯一的实体.
2、是面向对象编程过程中分析和解决问题的出发点与基础
3、拥有自己的标识、数据和行为。
4、可以简单或复杂。
5、可以抽象或具体。
6、在oop中是一个动态实例
7、如Student-id,name,age(attribute)
类
1、类是对象的模板
2、对象通过类实例化产生
3、一个类可以产生多个对象
面向对象分析方法
1、建立针对业务问题域的清晰视图
2、列出系统必须要完成的核心任务
3、针对问题域建立公共词汇表
4、列出针对此问题的最佳解决方案
面向对象设计
1、如何解决具体的业务问题
2、引入系统工作所需各方面的支持元素
3、定义系统的实现策略
OO面向对象的特点
1、抽象 忽略掉一个对象或实体的细节,而只关注你本质特征
2、封装 目的:实现信息的隐藏
一、属性信息
二、行为的操作信息 隐藏方法实现的细节 代码重用
3、继承
一、子类可以继承父类的属性方法。
二、子类可以有自己的特性存在
4、多态 相同类域不同对象调用相同方法时的不同形式
一、子类继承父类,类实现接口
二、子类重写父类的同名方法,类实现接口中的抽象方法
三、父类的引用指向子类的对象,接口类型的引用指向具体实现类对象
重写/重载 编译期多态:方法重载 运行期多态:方法重写
OOP(面向对象设计)
类:属性 方法
抽象 实例化
事物 —–》类——–》内存中的对象
对象分为 域对象:在整个对象的设计过程中,侧重于数据的封装/传递 用来做数据处理的类 信息的载体。POJO JavaBean 行为对象:侧重于行为的操作,逻辑的实现。此类对象 常见于接口的实现类,抽象类的扩展类类与对象之间的关系 继承关系:is a 依赖关系:类a对象并不需要存在有类型B的对象属性而是在使用时 直接在方法中实例化B(new对象)来调用相关的业务方法来完成整个业务操作关联关系:对象之间交互时的一种依赖关系,当一盒对象通过 另一个对象的服务或操作时,两个对象便产生了关联 类对象又可以分为聚合关系和组合关系 聚合关系和组合关系的特点及区别 1、聚合关系也称为has a关系 caontains a关系 2、聚合关系表示事物的整体/部分关系较弱情况, 组合关系表示整体/部分较强的情况 3、聚合关系中,代表部分事物的可以属于多个聚合对象 可以为多个聚合对象共享,而且可以随时改变它所从属的聚合对象 代表部分事物的对象与聚合事物的对象生存期无关 一旦删除了他的一个聚合对象,不一定随机删除部分事物对象 一旦删除了组合对象,也就随机相应的代表部分事物的对象 OOP过程中核心原则 1、尽量能使用封装特性 就使用封装特性 2、面向接口编程 3、重组合/聚合 轻继承 4、 抽象类和接口的选择问题 1、语法角度 Interface 属性:public static final 方法:只能是抽象方法 注意:可以没有任何方法 作用:被类实现 abstract class 属性:正常属性 方法:可以是普通方法,也可以是抽象方法 注意:可以没有任何抽象方法 作用:被类继承 2、设计角度 一个类可以实现多个接口但是一个类只能继承一个父类 接口和抽象类的设计,都是在有意识地规避java不能多继承的操作 接口是抽象类极致的抽象 3、思想角度 一、类进行抽象的时候是否关注属性 二、尽量让问题域独立存在,根据操作选择合适的抽象类或接口
5、设计模式的定义和作用
定义:对软件设计问题的可重用的解决方案
作用:1、重用设计比重用代码更有意义,可充分利用已有的软件开发经验。
2、为设计提供共同词汇,方便交流和书写开发文档
3、降低错误的可能性
4、节省时间
好的软件系统设计应该至少具备以下三点 可扩展性 灵活性 可插入性
面向对象设计原则
一、单一职责原则
类的职责要单一不能将太多职责放在同一个类中
二、开闭原则
对扩展开放,对修改关闭。软件的设计应该尽可能的使框架稳定而且
又容易满足不同需求,提高代码可用性,理论上希望能达到不能修改
源代码情况下扩展功能。
三、里氏代换原则 在系统中 ,一个可以接受基类对象的地方必然可以接受一个子类对象四、依赖倒转原则 要针对抽象编程,而不是针对具体类编程五、接口隔离原则 使用多个专门接口来取代一个统一的接口六、合成复用原则 系统中尽量使用组合聚合关系,而尽量少用甚至不用继承关系七、迪米特法则 一个软件应当尽量少的与其他实体发生相互作用
设计模式
创建型模式:共五种:工厂方法模式,抽象工厂模式,单例模式、建造者模式、原型模式
结构型模式:共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
行为型模式:十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式
状态模式、访问者模式、中介者模式、解释器模式
**总结:OOAD学习的一些总结,能使用父类的引用指向子类的对象就使用,使用父类的引用意味可以使用无数子类对象,
增加程序可扩展性,降低程序的修改,工厂模式后可以不用new对象就可以创建新对象,代理模式是在委托类前
使用一个代理类处理程序。**
- OOAD&UML学习笔记
- OOAD学习笔记
- OOAD 学习笔记 一
- OOAD 学习笔记 二
- OOAD 学习笔记 三
- OOAD 学习笔记 四
- OOAD 学习笔记 五
- OOAD 学习笔记 六
- OOAD 学习笔记 七
- OOAD 学习笔记 八
- OOAD 学习笔记 九
- OOAD 学习笔记 十
- OOAD学习笔记
- OOAD&UML学习笔记
- OOAD学习笔记(1)
- OOAD 及 UML 学习笔记
- UML学习笔记(2)OOAD
- 系统分析与设计学习笔记之一: Introduction of SE & OOAD
- 游戏开发之UGUI搭建UI界面
- 使用sudo命令,免输入密码的方法
- 如何理解“可靠性”和“可用性”?
- Mac OS X安装libevent库报Install libevent bufferevent_openssl.c:60:10: fatal error: 'openssl/bio.h' file
- 在 Docker 中使用 flannel
- OOAD学习笔记
- 洛谷[3879] [TJOI2010]阅读理解(trie树模板)
- codevs 1191 数轴染色 模拟? 解题报告
- Password UVA
- How to Fix :NameError: name 'reload' is not defined
- 蓝牙数据传输过程简述
- HDU 1698 Just a Hook
- thinkphp上传图片自动压缩问题
- 【Linux学习笔记】20:Bash基础-历史命令