学习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還是怎麽?
------解决方案--------------------学习中