Objective-C——面向对象设计——OOD(Object Oriented Designs)

来源:互联网 发布:软件性能测试规范 编辑:程序博客网 时间:2024/06/09 19:18

面向对象设计——OOD(Object Oriented Designs)


———- android培训、java培训、期待与您交流! ———-

  • 面向对象设计OODObject Oriented Designs
    • 面向对象设计特性
    • 为什么要进行面向对象设计
    • 面向过程和面向对象的区别


面向对象设计特性

Encapsulation(封装), Inheritance(继承), Polymorphism(多态)
相信这三大特性大家都很熟悉了,学了他们我们就可以定义一个类并且对其的相关属性成员,以及对方法进行封装
然后根据根据这些类之间的关系定义出继承关系的类来。

但是,这还不够!这三大特性相当于面向对象的基本原则或者说通常遵循的规范和面向对象设计不是一回事,

面向对象规范为面向对象编程定义了基本的规范,它是面向对象编程的主要思想.面向对象规范教你怎么用类,怎么把一些属性和方法封装在一个类里,怎么串出类之间的继承关系。

那么问题来了!


为什么要进行面向对象设计

有一个问题是即使大家不知道面向对象设计,也能够根据编程规范很快的创建一些个类,编写程序,开发代码完成工作,那么为什么要使用面向对象设计?

激粒

纵观编程语言发展史我们了解到:
- 当总是对0101进行操作表示不爽的人们整出了汇编语言
- 当人们对汇编也想进行封装提升工作效率就整出了C语言
- 经过长时间使用C语言一些问题变得越来越明显化: 应对需求变化的代价很大

有了上面的激粒,再来让我们来引用一句经典:

“Walking on water and developing software from a specification are easy if both are frozen.”
- Edward V. Berard

大概意思是如果根据一份不变地规格说明书来开发软件就像是在冰上走路一样容易

要知道我们所设计出来的软件是来解决生活中遇到的问题的,比如办公处理、图像处理、预算统计等等, 而我们处理的内容并不是一成不变的!也就是说软件必然会被修改,需求不断会发生变化.

如何应对这些变化呢?
这需要我们写的代码易于被扩展和重复使用.没错这就是敏捷开发,而敏捷开发的设计关键就是面向对象设计.
PS:(终于回到正题…)

没错!面向对象设计就是为了应对未来未知的需求变化和功能拓展而形成的设计思想,或者说是编程思想


面向过程和面向对象的区别

我们来举个例子:

    现在有这么一个场景,有一家三口人(爸爸妈妈还有一个孩子),现在家里人要和热水了,那么这家人该怎么做呢?

面向过程 :不管是谁,只要做到第一步打开水壶盖,第二步装适量的水, 第三步烧水即可.

面向对象 :家里爸爸会做这件事啊。可以让爸爸去做这件事么,当然也可以让爸爸把烧水的方法教给孩子让孩子做呗。也就是说,让爸爸(Dad类)整出一个套路(从自己的方法中抽象出一个烧水标准接口协议)教给孩子(让Son类对该标准接口协议进行实现),那么孩子也可以去烧水了。

类似于上面我举得例子,现在网上绝大多数说面向过程和面向对象去别的就说到此处!
但是,面向对象怎么会这么说呢? 纵观全局!面向对象就是站在这样的角度,来思考设计模式的!


0 0
原创粉丝点击