什么是面向对象?你真的理解了吗?
可能大家听过很多关于面向对象的描述,各种各样的,很抽象很难以理解,面向对象其实并不复杂,每一个人的面向对象都是不同的。
我先来说说我对面向过程以及面向对象的理解:
- 面向过程:关注点在于做了什么,描述的是发展的过程
- 面向对象:关注点在于能做什么,描述的是对象与对象之间的关系。
那么什么对象到底是什么呢?下面我来举一个简单的例子:小明要去吃饭,把这句话用代码翻译。
我们来看看用面向对象的思维该怎么去分析这段话,这句话可以抽象成谁干什么,这句话可以抽象出两个大的类,一个是Person(谁),一个是ACtion(行为)
OK,我们看看应该Person能做什么呢?Person能够执行行为。
行为能够做什么呢?行为发生前的动作,发生时的动作,发生后的动作。
我们来看看代码表述:
//抽象出行为接口,方便拓展行为,定义了行为模板,行为发生前,发生时,发生后
public interface Action {
void preAction();
void doAction();
void afterAction();
}
//通过行为接