面向对象,封装变化,可是对象本身就在变化该怎么办呢?
比如说 一个Person类
有地址 address属性
有电话 tel属性
有姓名 name属性
系统呢创建了一个 张三
Person zhangsan = new Person()
...
在系统里跑得挺好
面向对象,封装得都挺到位了。
突然有一天。
他有车了。(需求增加)
咋办呢?
Person类里面没有
car的属性啊
也没有drive的方法啊。
好吧。。。
那咱把这个功能加进去。
新增加了 Driver类继承Person或者Person类里面直接增加了car属性和drive方法....
但是...但是 00不应该封装变化么?如何封装未知的变化呢?或者说 对这种新增需求的变化,有没有比较好的方式呢?
给我感觉 好像这是一种悖论:既要面向对象,又要封装,这好像是永远无法完成的,因为真实世界中的对象总在变嘛。