软件分层的不足之处?

CACACACACA 2009-12-14 11:41:31
加精
一般情况下,程序大多是分三层. 基本每个人都能说出出层的好处.

但分层除了复杂度增加外还有什么缺点呢? 又如何处理?
...全文
1575 73 打赏 收藏 转发到动态 举报
写回复
用AI写文章
73 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_wanted 2011-12-03
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 shuanghuo9 的回复:]
个人觉得分层最大的好处是可以并行开发,项目成员各干各的只要提供接口就可以了~
[/Quote]
顶~~,并行开发节省了很多时间。。。
baob555555 2010-03-01
  • 打赏
  • 举报
回复
引用 39 楼 jjwwang 的回复:
说下我暂时能想到的:
1  要有一定的人手。(分层后代码量要加大,人少了肯定会累。)
2  对程序员的有一定的要求。
3  设计者要有相当的能力。
4  系统复杂程序度上升。(一个大的项目,分层到底是简化了还是加大了复杂程度?)
5  设计文档尽量详细。(也算工作量吧 。)

总的来说是用 “复杂”换“维护”。
如果软件开发一次就永远不用改动了,也就没有必要“绕圈子“了。


顶~学习了~
缪军 2009-12-20
  • 打赏
  • 举报
回复
大家注意:题目是讨论分层的缺点
首先我认为楼主指的是物理分层,
1、层的表现形式:一个类、一个文件夹、一个函数都可以是一个层,
甚至某种约定(比如命名约定)都可以是一个层;
2、分层就是代码的一种管理形式,不管有意无意,分层一定是存在的(就算你把代码全部写在一起,除非你不以函数、过程等块形式写代码);
所以问题是怎么分层,而不是分不分层,分层的缺陷不来自于层这种形式,而是设计不成熟造成的,
在各个开发组织中,分层的目的是不一样的:
有可能是分工,有可能是推迟组装,也有可能是自动化生产的需要;
3、不成熟的分层(其实就是代码管理形式)具有以下缺点:
随着项目的复杂程度的增加,代码量和维护难度也随之增加;
需求变更导致多层代码变更;
过分依赖技术;
业务相关、数据相关的代码没有减少反而增加了;
cici_wang_ 2009-12-20
  • 打赏
  • 举报
回复
xuexizhong~~~~~~~~~
luyao77520 2009-12-20
  • 打赏
  • 举报
回复
asdvwv
luxi0194 2009-12-19
  • 打赏
  • 举报
回复
分层有利于代码的重构和重用。。。。
hualiang_ll 2009-12-19
  • 打赏
  • 举报
回复
如果一般的小项目就没有必要进行分层了,大的就有必要了
assiwe 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 62 楼 caotoulei 的回复:]
引用 2 楼 jjwwang 的回复:
当系统升级时,假如在数据库中加入一个字段. 分层的直接结果就是纵向的影响太大了---从顶层到底层.




呵呵,这就是耦合的确定啊, 楼主应该学学MVC了。。。
[/Quote]三层指的就是MVC,而且确实有这个缺点的.
xuhuiqin226 2009-12-19
  • 打赏
  • 举报
回复
我觉得分不分层,分几层要根据实际情况而定。
huanqun1020 2009-12-19
  • 打赏
  • 举报
回复
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。
caotoulei 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jjwwang 的回复:]
当系统升级时,假如在数据库中加入一个字段. 分层的直接结果就是纵向的影响太大了---从顶层到底层.


[/Quote]

呵呵,这就是耦合的确定啊, 楼主应该学学MVC了。。。
sdwenzhang 2009-12-19
  • 打赏
  • 举报
回复
关注
勉励前行 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 jjwwang 的回复:]

总的来说是用 “复杂”换“维护”。
如果软件开发一次就永远不用改动了,也就没有必要“绕圈子“了。

[/Quote]

开发一次就永远不用改动 的軟件,就是垃圾,用了就扔。
翻來復去改動N次,能讓你過關,已經算是萬幸了,還夢想一次過關。
eaglegrace 2009-12-18
  • 打赏
  • 举报
回复
学习了
mercury_jie 2009-12-18
  • 打赏
  • 举报
回复
执行/通信效率肯定会有一定的损失,但是人们总能找到一些方法来弥补,让它尽量维持在大家能接受的范围。

或许以后有更好的model,但是目前来说,分层是基本的架构设计方法之一。

Noak_ark 2009-12-18
  • 打赏
  • 举报
回复
学习了
YHL27 2009-12-18
  • 打赏
  • 举报
回复
learnling!
xueshenzhou 2009-12-18
  • 打赏
  • 举报
回复
分组 便于维护,但是变量多次进行传递,势必会造成效率下降!
lgm277531070 2009-12-18
  • 打赏
  • 举报
回复
楼上都说了那么多 我就说一点了 就是分层的话逻辑清晰。且以后维护方便
stranger_cool 2009-12-18
  • 打赏
  • 举报
回复
up
加载更多回复(52)

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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