如果是在一个有限的集合中,如果抽象成:
"监测值"(属性:时间、SO2值 、CO 值、CO2值 动作:getData()、setData())对于我要取得一定范围的"监测值",我是这么理解的,首先我引入一个对象群体的说法,那么实际上是要一定范围的"监测值"对象的群体,在starter kit中他们是这么干的:
namespace Duwamish7.Common.Data
{
    public class BookData : DataSet
    {
    }
}
然后在Book类中这么使用:
public BookData GetBooksByAuthor(String searchText)
{
}
也就是把对象群体转化成了DataSet这么个东西了,便于在界面显示时进行数据帮定。1.但是对于每一个不同的对象群体都这么转化处理的话烦不烦呀。
2.回到老话上来,对于"监测值"的监测项目是可变的,明显"监测值"(属性:时间、SO2值 、CO 值、CO2值 动作:getData()、setData())这样的抽象结构是不适合的,那么采用"监测项目数据"(属性:项目名称、时间、监测值 动作:getData()、setData())这样的抽象结构的话,就面临怎么来处理数据按照表1来显示的问题了。
表1:
日期           SO2       CO    CO2
2003-1-1        1        1      2
2003-1-2        1        1      2
3.对于"监测值"的监测项目是可变的,当然我也可以在有新的监测项目的时候去动态的改变"监测值"(属性:时间、SO2值 、CO 值、CO2值 动作:getData()、setData())这样的形式在数据库中为"监测值"(属性:时间、新项目、SO2值 、CO 值、CO2值 动作:getData()、setData()),但是这样在你写一个监测值类的时候不好处理吧,属性都不定了呀。

解决方案 »

  1.   

    在Book类中
    public Book[] GetBooksByCondition( String condition)
    {
    }
    是不是作为static更加好,因为它并不是Book实例的行为。
      

  2.   

    类是对对象的抽象话,实际上也就是对象群体,所以要取得一个对象的群体可以理解为类的动作,也就是可以用static方法,和具体实例没有关系。
    学校里好象也是这么讲的,不知道理解的对不对,请指点!
      

  3.   

    如果数据类型会变化,可以考虑用arraylist,但是至少要知道每一次具体的类型。