我看很多例子,包括微软Duwamish里面查询产品的时候也是,先就来个ProductSystem类,里面弄几个类似GetCategoryItems的方法,然后再到bookDataAccess类里面查书的东西,ProductSystem类和bookDataAccess类都是方法,没有个属性,不像是类的样子阿,还不如写成静态的,都好像在用面向过程的思想嘛?
谁来指教一下?

解决方案 »

  1.   

    理论上的完全面向对象是不可能的例如将行为和数据分离是面向对象所反对的,但在多层架构中层与层间交换数据用的DTO就是只有数据的类实例
      

  2.   

    要说完全面向对象是不可能的,有人说java和C#就是面向对象的,但是别忘了他们还有基本数据类型(int,char...),还有类的继承(真正面向对象应该是只有接口继承而不是类的继承)。
      

  3.   

    偶接触asp.net 即面向对象的概念觉得:外在:封装的类,只显示公共的接口,内在:为继承、多态、
      

  4.   

    虽然我没看过这个程序
    但看来你对企业设计不熟识
    ProductSystem是业务逻辑层
    bookDataAccess是数据访问层业务逻辑层本来就应该是无态的,如果是多态的,那么就可能同一操作不同结果了
      

  5.   

    可以参考下最新的技术SOA, Service Oriented Analysis. 随着业务的复杂和需求的增加。面向对象的方法也需要改进。面向服务的分析设计方法正是这种需求的新的解决方案。还可以参考一下PSE(Process Service Entity)
      

  6.   

    问题很好,ProductSystem看上去不完全象Domain类,大概是跟Use Case有关的控制类或跟应用有关的类,DAL类主要是用来操作数据库或返回对象的。Category或Book应该是Domain类,有数据和行为的不用静态,跟分布应用有关,譬如你无法在Remoting里调用远程static methods
      

  7.   

    如果说抽象出服务对象我觉得更好理解。而且对于提高系统的松耦合更加有利,也许也就是名称上的区别。
    如果把ProductSystem做成WebService单独作为一层的话。通过WebSerice公开其方法(即服务)完全可以实现分布式。
      

  8.   

    面向对象已经过时了,现在流行的是面向服务/面向层ProductSystem类是一个服务类,只有里面的每个服务的具体实现比方GetCategoryItems才有可能用到面向对象,但是那个例子都太简单了,所以你看不到面向对象的影子现代软件的开发已经站在越来越高的位置上了先是 层,然后是服务,然后才使用面向对象的方法实现每个服务功能最后是使用面向过程的方法实现每个对象的每个具体方法