关于封装对象实现数据库连接的问题。
我最近在尝试学习面向对象的设计与编程
然后自己在做一个办公自动化的软件
这个软件有很多功能,比如有申请办公用品,审批,领购,统计,导入数据,导出数据。
类似的功能还有很多,我把这些功能抽象为一个类(因为用的是PHP,但是PHP里没有人用模式问题,所来C++交流,就是类似C++的纯虚类)然后具体实现时,其它子类在继承这个纯虚类(PHP中为抽象函数),现在子类要连接数据库,我需要不需要把连接数据库也作为供有函数放到基类中,我尝试用单态模式连接数据库,但是不怎么精通,求高手能指点下具体的实现原理
[解决办法]
有3种设计方式可以选择:
1)如你说的,把数据库操作功能放到基类,然后子类继承并复用这些功能。
2)把数据库操作功能放入一个类,然后其他类合成并复用这些类。
3)将数据库操作功能放入一个singleton类,然后其他类直接使用。
我觉得第3种方式可能更好一些。因为使用继承会增加额外的抽象负担,并增加了不必要的类体系。以后每个需要数据库操作的类都要继承该类,本来不需要体系的类也被迫加入。第2种方式相对来说比第1种好一些,但坏处就是必须在需要的类种合成一个数据库类,增加了一些维护负担。第三种是最好的,相当于一个工具类,在任何地方都可以直接方位,在使用它的类中没有任何的维护开销。
[解决办法]