|
|
《代码大全》里面曾经提到,对于编程,有些人把它看作科学,有些人把它视为手艺,有些人则把它视为艺术。
我在看到《代码大全》第8章:防御式编程时突然有了个想法。
譬如,在我目前正在制作的游戏的系统架构的RTS模块中,应当有一个类用来描述玩家在游戏中能看到的最低数量士兵单位(即一人),名字还没定,假设是BattlerUnit吧。
按理说,BattlerUnit对于各个种族的士兵都应该适用,但是在这里我为了能描述两个种族不同的性格,我只把BattlerUnit作为基类,绝大多数成员函数都将被声明为虚函数。并且在BattlerUnit下面创建两个派生类CatsUnit和DogsUnit。
对于CatsUnit,为了表现其友爱和包容,我可以在写异常处理时把重心放在对错误输入的修正上,
而对于DogsUnit,为了表现其对于纪律的重视,我可以在写异常处理时把重心放在ASSERT上。
我还可以这样做,将我的设定中写到过的每一个角色都写成单独的派生自CatsUnit或DogsUnit的类,将属性值都写成const锁死,用来突出TA与普通士兵的区别。
如此类推,即使是程序码也可以成为能用来塑造世界和各个角色的剧本与设定。(不过或许多数程序员都不愿意这样做,因为这会直接把系统架构搞砸,并且令各个类都显得晦涩难懂。)这样一来,说编程是一门艺术,自然也是有根据了呢。
|
|