日期:2014-05-18  浏览次数:20473 次

学习OO遇到的问题
这一两天在分析.Net的实例PetShop时,懂了很多之前没接触过的知识,并开始喜欢OO思想,但有些不清晰的地方.

1、在PetShop里,数据访问的接口放在IDAL里,每一个类(Order,Item,Product)都抽象出一个接口并一一对应,如IOrder,IItem,IProduct,然后在对应的接口里把对应的实体类(OrderInfo,ItemInfo,ProductInfo)做为参数传递,如Order实现类里的:void   Insert(OrderInfo   order),,这种表达方式也明白个大概.

但把这种方式代到现实中的时候,又不知如何入手了:
我有三个类User,Role,Function都有同样的方法(Insert,Delete),是不是可以抽出来,放到一个公共的接口中:IOperation?但是它们的参数(即实体类)并不相同,我就不能用void   Insert(UserInfo   user)这种方式,那这个公共的接口该如何设计呢?

2、PetShop里,对Order的Insert操作用到了Stategy模式,那对我的三个类的操作(Insert,Delete)是否也可套用这种模式呢?

由于刚开始接触OO,感觉还很模糊,问题表达也不是很清晰,还望高手赐教!

谢谢

------解决方案--------------------
或许楼主在其他方面很强
------解决方案--------------------
sf


mark 一下。

楼主无怪
------解决方案--------------------
LZ啊,呵呵………………
PetShop主要讲得可不是OO哦。它主要讲的是三层架构。C#里面每一样东西都是OO。

--------------------------------
其实这个架构并不是在什么情况下都好用的,如果你只是一个小的应用,那就不要用这种方式了。没什么好处,还给自己添麻烦。

这种加构在下面几种场景下很有用:

1、要有很大的扩展空间。如:以后要更换数据库。
2、项目很大,需要多人协同开发。

-------------------------------------

回答你第二个问题:你可以定义三个接口,或者定义一个泛弄接口。
------解决方案--------------------
wzd24(牧野)(衣带渐宽终不悔,为伊消得人憔悴) ( ) 信誉:100 Blog 加为好友 2007-6-4 16:19:59 得分: 0



LZ真的是五个三角的??

============================================================================

我四个内裤,基本啥也不懂,嘎嘎


------解决方案--------------------
PetShop的系统架构设计 http://www.cnblogs.com/wayfarer/archive/2006/04/14/375382.html

PetShop数据访问层之数据库访问设计 http://www.cnblogs.com/wayfarer/archive/2006/04/21/381315.html

PetShop数据访问层之消息处理 http://www.cnblogs.com/wayfarer/archive/2006/09/06/496207.html

PetShop之ASP.NET缓存 http://www.cnblogs.com/wayfarer/archive/2006/11/01/547060.html

PetShop之业务逻辑层设计 http://www.cnblogs.com/wayfarer/archive/2006/11/05/550723.html

PetShop之表示层设计 http://www.cnblogs.com/wayfarer/archive/2006/11/11/557933.html

Microsoft .NET Pet Shop 4 架构与技术分析 http://www.cnblogs.com/ltp/archive/2006/04/17/377564.html
------解决方案--------------------
设计模式和OO可是两码事??

·····················

持保留意见
------解决方案--------------------
呵呵………………
设计模式和OO可是两码事。

--------
OO就是虚方法的重写,设计模式我看了2个也都是在谈这个啊,有点联系
------解决方案--------------------
現在的asp.net 2.0 一般用什麽DAL框架比較好啊?自己寫,就像petshop一樣,還是用nhibernate還是怎麽?
------解决方案--------------------
学习中