面向对象在数据库应用程序中的应用(转)

      DataBase 2005-10-8 10:48

面向对象在数据库应用程序中的应用

关于面向对象的方法,以及应用程序的三层结构,一直得不到比较好的领会,今天在椰子林看到这篇介绍,深有感触,觉得虽然和PetShop宏伟的结构还有遥远的距离,不过觉得终于还是近了一步。

这篇文章涉及到Simple Factory设计模式,在“C#设计模式”的第四节有介绍;

=============程序和摘录================

  面向对象是当今程序界的普遍编程思想,他具有三个最基本的特征:封装、继承和多态。继承对于代码的复用非常有效,多态则是指函数(方法)的多种形态,可以通过子类重写父类的方法来改变对象的行为,在面向对象编程中起到非常重要的作用。那么,在实际应用中,到底能起到什么样的作用呢?也许使用例子最能表达这个思想。

  比如,我们要写一个简单的论坛程序,经过分析,可以得出需要下面的表:用户表(Users)、版块表(BBSBlock)、回复表(Reply)、主题表(Topic)等(为了方便代码的继承,我把所有表的id号都设成相同的名称:id)。对于这些表,都有一些相同的操作:浏览,删除,添加和修改。那么,我们是不是对每个表都写对应的方法来实现呢?显示,这种方法是笨拙的。而继承,在这里就会发挥极为重要的作用。思想是:写一个父类,把这些基本的操作写好,然后,将每个表抽象成一个类,并继承刚才创建的父类,此时,所有的子类都具有这些基本操作了。

  在这个类中,我们定义了两个重载的构造函数和一个用来获取数据集的方法,同时,定义了两个作用很大的字段,一个是表名,一个是连接对象。当其他类继承这个类时,就不再需要再次定义表和连接对象了,最主要是的,这两个字段为我们更好的实现继承起到了关键的作用。

  接下来,我们创建一个子类:Users。这个类是表Users的抽象:

  现在,大家可以看出来,我们只是写了该类的两个构造函数,就具有返回表中所有数据集的功能了,因为该表继承了DBBaseClass。

  实例化子类时,采用简单对象工厂设计模式,返回不同类型的对象。

  使用:
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}