当前位置:编程学习 > C#/ASP.NET >>

类设计的概念,请大家帮忙看下...

有个物业信息管理系统。 有收费管理,里面分物业费,租赁费,水电非,车位费等等。 那么这个收费是应该 归属在房屋类里面的一个个方法呢,还是单独分类出来形成一个类?

另外比如一个新闻系统,有些人能增加新闻,有些人有权限编辑新闻。那么NewsAdd、NewsEdit是都应该归属到News类里面呢,还是应该归属到Users类里面?因为毕竟NewsAdd、NewsEdit都是某一个user发起的动作。 --------------------编程问答-------------------- 收费应该设计成一个接口方法,其他待收费的“物业”“水”“电” “车位” 设计成类实现这个收费接口即可。

新闻类是个实体,不应该承载方法。 NewsAdd NewsEdit 可以放到一个NewsService类中,不能放在新闻或者神马用户类里。 --------------------编程问答-------------------- 多谢2楼,继续顶~ --------------------编程问答--------------------
引用 1 楼 johnyin 的回复:
收费应该设计成一个接口方法,其他待收费的“物业”“水”“电” “车位” 设计成类实现这个收费接口即可。

新闻类是个实体,不应该承载方法。 NewsAdd NewsEdit 可以放到一个NewsService类中,不能放在新闻或者神马用户类里。



物业费”“水”“电” “车位”  等,他们返回的内容都不一样,如何用统一的接口去实现呢。

比如 物业费返回的是 上次交费日期,物业非单价,房屋面积等等。 而水费返回的是上次超标吨数,本次抄表吨数,单价等等。 这两个费用还有那么一点类似之出。但还有家政服务,有尝维修等完全没有雷同之处,如何用一个接口去实现呢? --------------------编程问答-------------------- ding   --------------------编程问答--------------------
引用 3 楼 reape 的回复:
引用 1 楼 johnyin 的回复:
收费应该设计成一个接口方法,其他待收费的“物业”“水”“电” “车位” 设计成类实现这个收费接口即可。

新闻类是个实体,不应该承载方法。 NewsAdd NewsEdit 可以放到一个NewsService类中,不能放在新闻或者神马用户类里。



物业费”“水”“电” “车位”  等,他们返回的内容都不一样,如何用统一的接口去实现呢。
……


内容不同,计算方式肯定不一样。 接口是提供了对不同实现的统一调用管理。 
你可以在“物业”操作类里定义不同的属性,用各自的计算方式实现统一接口的“计算”方法
“水”“电”等一样。。。 接口方法返回一个统一的“金额”即可。 
--------------------编程问答--------------------
引用 5 楼 johnyin 的回复:
引用 3 楼 reape 的回复:

引用 1 楼 johnyin 的回复:
收费应该设计成一个接口方法,其他待收费的“物业”“水”“电” “车位” 设计成类实现这个收费接口即可。

新闻类是个实体,不应该承载方法。 NewsAdd NewsEdit 可以放到一个NewsService类中,不能放在新闻或者神马用户类里。



物业费”“水”“电” “车位” 等,他们返回的内容都……


首先这样做的好处在那里?会不会显的多此一举?

其次,物业非要返回关于物业实体类,里面包含很多内容。 车位费返回的则是车位费实体类。如何他们只是实现借口类的计算方法,我觉得每有什么实际意义啊。 --------------------编程问答-------------------- ding   --------------------编程问答-------------------- 我不清楚你的需求是什么,只是看到你提到“收费”这个方法。 
只看这个方法而言,用接口可以对这些待计费类的统一管理,这样是很有好处的。
比如,某个用户他只有物业和水电两种费用,你计算他的总额时候就可以定义一个统一的方法
CalculateTotal(ICalculte[] arrWhatHeHas)

这样比你一个个累计不是方便很多?


--------------------编程问答-------------------- 你看我这样行吗。

定义一个 费用计算类CountFee 。

里面 有 几个属性 WuYeFei ,ZuLinFei,ShuiFei........等

这些属性返回 WuYeFei,ZuLinFei,ShuiFei实体类。

而这些实体类都有一个QianFeiZongE的属性。

然后CountFee也有一个QianFeiZongE的属性,我们在这个属性的Get方法里,自动累加各个种类的费用。

此后如果我想得到某一户所有的欠费总额,只要通过CountFee.QianFeiZongE得到就可以了。

我不明白我们这里定义接口有什么好处或者作用呢? --------------------编程问答-------------------- 费用的话可以单独提出来作为一个公共类或者接口。
Add之类的方法也提出来作为一个公共接口。
--------------------编程问答-------------------- 我顶。 --------------------编程问答-------------------- 设计应该应总体而言  从全局方面开考虑 同时映射数据库结构 方便阅读与编写
针对物业信息而言  房屋属于类 费用属于其中方法  用继承 或者所有费用设计成一个接口 费用并不是实体

新闻来说 新闻属于实体 针对新闻的方法都应该放在新闻里 而不是放在用户里 最简单而言 如果说你写成webserver不能让人家创建和你一样的用户类来操作吧 你也不会干。。对用户的操作放在用户类里

解释简短 在于理解 --------------------编程问答-------------------- 收不收费、收什么费都是利益集团的事儿,关房屋P事...增加、编辑新闻都是编辑器的事儿,关新闻P事...

所谓业务逻辑核心是业务,业务都不理解谈什么设计...学生样闭门造车是制造垃圾软件的根源... --------------------编程问答--------------------
引用 13 楼 vrhero 的回复:
收不收费、收什么费都是利益集团的事儿,关房屋P事...增加、编辑新闻都是编辑器的事儿,关新闻P事...

所谓业务逻辑核心是业务,业务都不理解谈什么设计...学生样闭门造车是制造垃圾软件的根源...


鄙视你。 --------------------编程问答-------------------- 唉,楼主与其鄙视别人,还不如先学一下面向对象,要理解面向对象不只是用“类”,类之间的关系更重要。

楼主这样用“类”,我只能说你用的是blumb类,听说过吗?翻译过来叫:不伦不类。 --------------------编程问答--------------------
引用 15 楼 xb_feng 的回复:
唉,楼主与其鄙视别人,还不如先学一下面向对象,要理解面向对象不只是用“类”,类之间的关系更重要。

楼主这样用“类”,我只能说你用的是blumb类,听说过吗?翻译过来叫:不伦不类。


我鄙视他是因为他说的不伦不类。

大多数人就不讨论问题,闭口开口就是这样不伦不类的花,你回去学学这学学那,只能让人深深的鄙视。 --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,