面向对象程序设计的思考

面向对象程序设计最重要的一点,就是对象的设计。设计好了对象,所有的工作,至少可以说是已经完成了一半。当然,我说的是一个完整的对象,并不是仅仅只有定义,也要有实现才行。

最近,我又开始翻看《java编程思想》等一些面向对象程序设计的一些书,当看到对对象的描述的时候,不禁开始思考:在设计对象的时候,什么才是最重要的呢?首先,一个对象是由其属性和行为组成的。有些地方喜欢说是成员——成员变量和成员函数,但是我更愿意说是属性和行为,这样的描述更能让我直观也更自然的认识一个对象:万物都是对象,生活中的任何一样事物,在抽象成为模型之后,对应该以对象描述之。那么在设计一个对象的时候应该怎么去思考呢?有人说,应该先考虑你设计的对象能干什么活儿,然后在考虑你设计的对象应该拥有哪些属性。但是我的观点恰恰相反,我认为,在设计对象的时候,应该想考虑我设计的对象是什么,它有用哪些属性,然后在此基础上考虑我设计的对象它应该拥有哪些行为。比如在设计一个汽车对象的时候,首先我想到的是,汽车应该有4个轮子,一个方向盘,一个发动机等等,然后我想到汽车有了这些东西之后,它有启动,停止等行为,考虑完成这些之后,就可以着手设计该对象了。当然针对这个例子的话,发动机应该也是一个对象,然后汽车和发动机应该是一个has-a的关系。

我更喜欢贴近现实的程序抽象,因为这样让我感觉更舒服,也让程序设计起来更加清晰更加容易阅读和理解。

原文地址:https://www.cnblogs.com/malloc/p/2217509.html