dahuatttt 2011-05-12 22:32
浏览 234
已采纳

ADT思想下,怎样处理一些数据问题

类应该只暴露和这个类的目的几乎完全一致的接口。但是这个类对象的数据可能需要检验 或 需要和别的东西交换数据。比如从数据库获得数据,写入数据库等操作。怎样才能在不破坏类抽象的情况下处理这些问题?
比如代码大全2.p138中描述的一个设计有缺陷的类:
[code="java"]class Emploryee {
public:
...
FullName GetName() const;
PhoneNumber GetWorkPhone() const;

bool IsZipCodeValid(Address address);
SqlQuery GetQueryToCreateNewEmployee();

private:
...
}[/code]

  • 写回答

4条回答 默认 最新

  • tangpython 2011-05-13 18:52
    关注

    我现在能想到的方案:
    定义一个基类(或虚基类),这个类定义些通用的操作,比如,取得数据库的连接,关闭数据库连接等;派生一个处理具体类型的类型的数据库类,该类的方法针对特定的类型操作,比如取得员工的方法public Employee getEmloyee()等操作;而Employee类则简单定义存取方法,因为大部分与数据库的操作由上面的派生类处理了。
    这样的结构可以复用一下代码,Employee类和数据库操作的类的耦合度相对小点

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?