OOAD初识

OOAD —> OOA OOD

OOA 面向对象分析

OO :软件工程技术,应用在软件开发的调研,分析,设计,编码,升级,扩展,测试等各个环节,并使用到大量的方 法,理论,原则,模式,工具,语言志在提高软件质量的综合技术。

OO:继承,封装,多态
继承

优点
1: 复用
2: 依赖于父类而又不局限于父类的表现— 子类可以对父类进行扩展
3:可以从某种意义上增加代码的灵活度《相对性》
缺点
1: 高耦合(当父类的敞亮,变量,方法被修改时,必需要考虑子类的修改)
2:继承是入侵性的(只要继承,就必须拥有父类的所有属性和方法)
3: 降低了代码的灵活性(子类拥有了父类的属性方法,会增多约束)《相对性》

多态:同一类域的不同对象在处理同一行为的操作时,有不同的表现方式

类与类的关系:

继承
实现
依赖:(组合,聚合)
    具有偶然性,临时性,非常弱的。(短暂性的使用)称为弱依赖;
    与类共生共灭,称为强依赖

    class A{
        B b;
        public A(){
            b = new B();  // 组合关系
        }

        public void setB(B b){  //聚合关系
            this.b = b;
        }
    }
    class B{}

Abstract class && interface

设计角度:
    1:避免多继承
    2:interface  <——功能  abstract:属性更像是一个模板
怎么选择?
    1 :思想
    2:根据问题域选择

————————————————————————————————————

OOA:面向对象分析 (需求与初始分析,建模)

背景调研:特性分析
需求确认:列出需求
风险规避:1:规避重复 2:概念模糊 3:技术实现
静态分析: UML  原型(axure工具) ———> (前面属于分析,后面是设计)效果图 ——>切图———>编码

OOD 面向对象设计:(OO设计原则与模式,建模,系统设计)设计原则 , 设计模式

设计原则:

单一职责:类的职责要单一,不能将太多的职责放在一个类中。
里氏替换:在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。
开闭原则:软件实体对扩展是开放的,但对修改是关闭,即在不修改一个软件实体的基础上去扩展其功能。
依赖反转原则:要针对抽象层编程,而不要针对具体类编程。
接口隔离原则:使用多个专门的接口来取代一个统一的接口。
合成复用原则:在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。
迪米特法则: 一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个 类就不应当发生直接的相互作用,而是通过引入一个第三者发生间接交互

维护性低的软件设计通常由于下面4个原因造成:

1:过于僵硬
2:过于脆弱
3:复用率低
4:黏度过高

好的系统设计应该具备以下三个性质

1: 可扩展性
2 :灵活性
3 :可插入性

定义OOA阶段

分析阶段主要解决以下问题

1: 建立针对业务问题域的清晰视图。
2:列出系统必须要完成的核心人物。
3:针对问题域建立公共词汇表。
4:列出针对此问题域的最佳解决方案。
此阶段要解决的核心问题是“将要做什么”?

定义OOD阶段

1:如何解决具体业务问题。
2:引入系统工作所需要的支持元素。
3:定义系统的实现策略。
此阶段要解决的核心问题是"怎么做"?

OOP的主要特征

1:抽象
2:封装
3:继承
4:多态
5:关联
6:聚合
7:组合
8:内聚和耦合

开发过程概念

1:传统开发过程----->瀑布模型
    需求 分析 设计 实现 测试~
2:统一软件开发过程(usdp)
3:Universal Process(通用流程)

OOAD的开发过程

1:大项目分解为一些子项目。
2:使用UML工具。
3:统一软件开发过程是一个迭代,递增的开发过程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章