http://expert.csdn.net/Expert/topic/1345/1345347.xml?temp=.6401941

解决方案 »

  1.   

    楼主作风的确可嘉。不过再说什么了,你在思考面向对象设计的问题了,这本来就是一个设计问题,怎样定义类层次,怎样划分功能,怎样实例化对象,对象怎样交互,那些功能可以复用(比如画图),那些必须特化,那些行为和关系可以被抽象处理,进行“泛化”(STL的做法)。记住一点好了,面向对象设计和设计模式,都是让人更好理解、更好复用功能、更好扩展,本身对代码的执行效率有一点损坏,并不存在这种比那种好,谁是标准的做法等等。面向对象的本质,从一个角度说,是利用代码的冗余来换取可理解性。
        汇编语言---我们关心执行的流程
        结构语言(c)---我们关心执行代码的复用
        面向对象(OOPL)语言---我们把数据、执行代码复用、控制流程都包含在类与对象里面了。不过,控制流在面向对象设计与编程中不好看出来,于是有设计模式(其中一个目的)等等。
      

  2.   

    说跑题了,“我希望实现一个核心的打印程序,一般的打印要求都可以调用它来实现,对特别的要求也要能比较简单的加进来”,你必须把功能抽象出来,简单的说,可能想win32api一样,提供一个应用接口,不过比较难做好。
      

  3.   

    CaptainIII(山上人):
    composite flyweight一书可有中文版,可有电子版下载?     学了几年VC,一直只注重Windows编程方面,只注意实现功能,对设计一直都可以说是什么都不知道,除了在书上看到的几个名词。
         到现在用VC工作了快一年了,想起来感触很多,做过一些程序,就算是一些技术不知道,可以找相应的资料,也可以比较快的搞定,但对于整个程序的设计可以说是基本没做什么(程序都比较小),总是一种方法搞出来后,发觉只对某一部分功能容易理解,就换新的方法,设计只是靠闪过的念头。但碰到的程序越来越需要好的设计,便觉得自己很是无力。
         设计啊设计,我一定要学会你!
      

  4.   

    《设计模式》-可复用面向对象软件的基础,有中文书卖,网上有e版下载,你可以找找,以“DesignPatterns.chm”为关键字,设计模式(Design Pattern).至于Composite(复合模式)和flyweight(享元)是其中合适你用的两种设计模式,不是书名。我也在学习,但切记不要照搬,尤其是不十分明白的地方,我有教训的。设计模式直接体现了“面向对象程序设计思想”,这是最关键的,而不是c++的语法。不过这种东西对大一些的系统和比较复杂的情况,如你所想做的,比较有用。如果想看,千万不要急功近利,我第一次看,完全似是而非的,隔半年再看,就基本清楚了,关键是实践。