来源:互联网 发布:恺英网络王悦垃圾 编辑:程序博客网 时间:2024/06/06 00:49

C/C++设计模式的问题


还有一种情况就是在父类中并不知道具体要实例化哪一个具体的子类。这里的意思为:假设我们在类A中要使用到类B,B是一个抽象父类,在A中并不知道具体要实例化那一个B的子类,但是在类A的子类D中是可以知道的。在A中我们没有办法直接使用类似于new ×××的语句,因为根本就不知道×××是什么。这个是什么意思?关键是"但是在类A的子类D中是可以知道的",为什么D知道?来源于<<C++设计模式>>的工厂模式中...
在很多时候,一个系统的应用框架是固定的,比如在一个处理文件的过程中,首先打开文件,然后处理文件,最后关闭文件。但是对于每一个类型的文件,处理文件的过程是不同的。所以,父类可以提供一个方法,而子类实现这个方法,这样,子类的行为就可以改变父类的执行过程。就像生产汽车,不同的汽车可能底盘、架子等都是相同的,不同的是细节。所以,框架性的生产可以放在一个部门中,而对于不同车型细节性的生产可以放在很多子部门中。这里,部门就可以看作父类,子部门就可以看作子类。如果以后想要增加一个车型,那么只需要增加一个子部门就可以了。可以看一下《设计模式可复用面向对象软件的基础》这本书。讲的比较好。另外,我觉得设计模式最重要的是应用,如果没有具体应用,这东西是不好理解的,而如果真正在应用中思考,那么可以很容易就融会贯通。
提问者评价
谢谢,你说的很正确...
原创粉丝点击