关于三层架构思想和面向对象思想是否冲突?

lcp147572931 2010-12-24 07:08:31
一直为这个问题所困惑 ,请大师们发表下自己的观点


比如做用户登录 有个User类,有两个属性:用户名UserName和密码:UserPwd 登录方法login()

面向对象思想 强调封装 登录本身就是用户的一种行为 所以把属性 login()方法 封装在一个User类中

而按照三层架构思想 又把User类的属性和方法分开了 分成了实体 和 业务逻辑 这样不是两种思想就矛盾了吗?
...全文
480 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
mailbao 2010-12-28
  • 打赏
  • 举报
回复
看帖磨練技藝
ITcql 2010-12-28
  • 打赏
  • 举报
回复
解耦是最大的标准
hztltgg 2010-12-28
  • 打赏
  • 举报
回复
帖子的例子可能不太好,save是保存,而现实中的面向对象是内存无限永不宕机的,所以无需保存,所以不好抽象。

我倒是觉得wpf里控件位置的逻辑挺好的,控件的宽度和高度是自身的属性,而控件的位置X和Y坐标不是他的属性,要改变大小可以直接修改属性,要改变位置就要上一级来处理了
lcp147572931 2010-12-28
  • 打赏
  • 举报
回复
hztltgg 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 lcp147572931 的回复:]
失血模型 是不是就不符合OO思想
[/Quote]
我是理解为失学模型就是没有动力的对象,需要天神来动他,他自己不会动,分层里面,user就是一行尸走肉,我们要登录,就是访问login网页,login就是项目里的一个类,是个天神,这个类把user扔到下一层。

主要就是网页本身是无连接的,所以在B/S架构下,动作本身就是不可能自动运行起来的。
flyerwing 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
分层最大的目的就是隔离,如果做不到隔离分不分层没有区别
OO各部尽量解耦,只改动最小的那个模块,强调抽象
系统分析元实体model
领域行为分析Idal
[/Quote]
估计大虾说的有道理.
lcp147572931 2010-12-28
  • 打赏
  • 举报
回复
失血模型 是不是就不符合OO思想
西门喷血 2010-12-28
  • 打赏
  • 举报
回复
面向对象是软件的设计思想
三层架构是软件的架构
完全是2个不同的概念!
lcp147572931 2010-12-25
  • 打赏
  • 举报
回复
只所以发此贴 是因为看到一篇帖子 说 微软petshop 不能算是完全面向对象编程 很多是面向过程编程 而三层架构也是属于面向过程 只不过是把实现的过程 分开而已
lcp147572931 2010-12-25
  • 打赏
  • 举报
回复
都说的好抽象呀…我相信很多新人都曾为这问题困惑过
wanghui0380 2010-12-25
  • 打赏
  • 举报
回复
如果理想状况能一步到位,那么我们都愿意一步到位

问题在于,绝大多数情况是他不能一步到位,他是被想出来滴,而想的这个人并不是神,他无法像上帝那样说要有光就有光滴。所以想不妨漫无边际的想,做不妨脚踏实地的做。
akonlaogong 2010-12-25
  • 打赏
  • 举报
回复
听各位大大一席话~发觉我对分层理解还不够深!!要 继续学习学习!呵呵
zhubo006 2010-12-25
  • 打赏
  • 举报
回复
顶SP1234
vip__888 2010-12-25
  • 打赏
  • 举报
回复
sp大哥发话了 楼主 注意sp大哥的话
  • 打赏
  • 举报
回复
某一个很高级的变化我们怎么应对?可能只有这个时候,应对真实测试的压力,你才了解要用到面向对象的分析和设计技术。不要本末倒置,不要在主观的习惯上就进入死抠字眼的死胡同,应该首先全盘接受然后再批评。
begintransaction 2010-12-25
  • 打赏
  • 举报
回复
路过
  • 打赏
  • 举报
回复
嗯,我还是给你再进一说一下思辨的原理:不要死抠字眼,不要论是非,所有的原理都是以测试实践为准绳的,测试标准不同则结果不同。
_LiuHui 2010-12-25
  • 打赏
  • 举报
回复
还是自己理解的 才是最好的
  • 打赏
  • 举报
回复
不要死抠字眼,面向对象是一个基本技术,它是为了高层次的技术而服务的,它不应该成为一个学生级的诡辩的伎俩。
  • 打赏
  • 举报
回复
死读书是无法用好书本知识的,死读书完全可以让人随便走入极端。

“面向对象思想 强调封装.......”,之后的推论缺乏对同一问题的各种实现方法的横向联系,而是纵向地跟文字较劲、死抠“封装”二字的字眼

我实在不知道怎么跟你说这些,因为你根本不在乎系统的变化和扩展,或者说根本不横向去理解知识。
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧