(原創) 写程序时,要同时以Class Creator和Class User的角色来写程序 (OO) (.NET) (N-Tier) (C/C++)

在上C++正式第一堂课时,第一张slide讲到Modern C++的教学原则与方法:当写程序时,要我们将Class Creator和Class User的角色分开,就算整个Project都是自己一个人写,也要自己分饰Class Creator和Class User两种角色,不能彼此混淆。

这看似很简单的一句话,却有很深的意义。

很多人抗拒OO的理由,认为OO只是将原来一个Function可以做的事情,拆成很多Object而已,这样只会将原本很简单的事情,弄成更复杂。PetShop就是个例子,原本一个Project就可做的事情,却要分成这么多个Project来做。若整个Project只看完成的结果,而只是以一个人开发的角度去思考,就无法了解OO。所以这里才特别强调Class Creator和Class User,最少,你要想象这个Project有两个人在开发,一个为Class Creator,专门负责设计Class,也可以称做Server Programmer,一个为Class User,专门负责用其它人开发的Class,也可以称做Client Programmer,两个人各司其职,一起开发这个Project。

这样分成两个人开发有什么好处呢?

1. 分工合作,可以开发出更大的Project。
2. Class Creator专心设计Class,和UI没有关系。
    A. 所以其它Project也可重复使用这些Class。
    B. 若UI改变,如Windows程序改成Web程序或改成手机程序,由于Class没和UI绑在一起,其它UI可以重复使用这些Class。
    C. Class若改变,只需修改Class程序,UI程序不用跟着修改。
3. Class User只需专注于UI设计与了解如何使用那些Class即可。

当Project由两个人合作时,就会发现这样的分工是合理的,同理,既然两个人开发是如此,更多人开发时更是如此,OO其实衍生出来的就是N-tier,OO是N-tier背后的理论,N-tier是OO的实做。所以以后我们开发程序时,不要如学校写作业一样,只想着做出答案而已,应该同时以Class Creator和Class User的角色开发程序,先扮演Class Creator的角色开发出Class,然后扮演Class User角色开发出执行的UI,事实上,不仅Modern C++如此,C#、Java也是如此,OO和N-tier的观念是不分程序语言的。

你可能感兴趣的:(Class)