分层、实体类与耦合!

简介:      三层,层与层之间的耦合确实弱了,那么为什么有时候修改起来会很麻烦呢?就是当字段有变化的时候,层层都需要修改,这到底是为什么呢?        看了园子里的一篇讲解耦合的文章(不好意思,忘记是谁写的了),没事的时候又合计了一下,终于知道了,原因在于耦合!不是层与层之间的耦合,而是层与实体类的耦合,这个耦合如果没弄错的话,还是最糟糕的内容耦合!所以才造成了不便于修改。

 

     三层,层与层之间的耦合确实弱了,那么为什么有时候修改起来会很麻烦呢?就是当字段有变化的时候,层层都需要修改,这到底是为什么呢?

 

     看了园子里的一篇讲解耦合的文章(不好意思,忘记是谁写的了),没事的时候又合计了一下,终于知道了,原因在于耦合!不是层与层之间的耦合,而是层与实体类的耦合,这个耦合如果没弄错的话,还是最糟糕的内容耦合!所以才造成了不便于修改。

 

     不知道我的理解有没有错误,欢迎板砖,呵呵。先发在首页一下下。

 

     如果我的理解是对的呢,那么就是给大家提个醒。如果是错误的呢,就当我没说好了。我没有真正写过三层的程序,只是看过同事写过,恩,看他们的代码很郁闷。看大家的帖子,好像也是承认,当数据库有变化的时候,三层确实不好应对,要修改几个层里的代码。不知道大家有没有想过原因,为什么每个层里都要改代码呢?这是我想出来的原因,不知道对不对。抛出来请大家讨论一下。

 

 


 

 

 补充。看了大家的评论,有几点我想澄清一下:

1、我没有说三层一无是处,完全不可取。三层当然有他好的地方了,我没有否认他的优点呀。

 

2、看大家的回复,还是基本上认同了三层对于字段上的变化,是不太好应对的。那么有没有想一下原因,有没有想过要改进一下!?有不足就放在那里不管了吗?或者认为这是合理的,是必要的,是不可避免的?当然有些人用反射、用一些方法来尽量避免大量数据的改动,那么这些改进是不是每个人都掌握了呢?

 

3、旁观者清、当事者迷,我在外面是有点站着说话不腰疼的感觉,但是我只是把我的想法说出来罢了。

 

4、找到了那片讲解偶的文章 谈谈系统中的耦合以及从另一个角度来解释姜同学的疑虑 。原来是亚同学的文章,居然没有记住,罪过罪过。

 

以下是引用:

 

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合

(1) 一个模块直接访问另一个模块的内部数据;

(2) 一个模块不通过正常入口转到另一模块内部;

(3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中);

(4) 一个模块有多个入口。

 

 标记耦合,数据耦合是ok的,内容耦合是最糟糕的,控制耦合和环境耦合其次。

 

引用完毕。

 

 

相关文章
|
2月前
|
存储 前端开发 数据库
模块功能分层解耦
模块功能分层解耦
16 2
|
5月前
|
存储 设计模式 测试技术
了解三层架构:表示层、业务逻辑层、数据访问层
了解三层架构:表示层、业务逻辑层、数据访问层
346 0
|
7月前
零耦合?抽象耦合?具体耦合?
零耦合?抽象耦合?具体耦合?
|
11月前
|
编译器
|
12月前
【系统架构】模块的耦合类型
【系统架构】模块的耦合类型
137 0
|
存储 人机交互
领域驱动设计总结——如何构造领域模型
本文为领域驱动设计系列总结的第三篇,主要对领域驱动设计概念做个介绍,本系列领域驱动设计总结主要是在Eric Evans 所编写的《领域驱动设计》 一书的基础上进行归纳和总结。本文主要介绍在领域驱动设计中如何构造领域模型。
129 0
|
开发者
待业务层设计与开发(业务层工厂类) | 学习笔记
简介:快速学习待业务层设计与开发(业务层工厂类)
51 0
|
数据库 开发者
业务层设计与开发(业务层标准实现类) | 学习笔记
简介:快速学习业务层设计与开发(业务层标准实现类)
100 0
|
开发者
业务层设计与开发(定义业务层标准) | 学习笔记
简介:快速学习业务层设计与开发(定义业务层标准)
110 0
业务层设计与开发(定义业务层标准) | 学习笔记
|
开发者
数据层设计与开发(数据层工厂类) | 学习笔记
简介:快速学习数据层设计与开发(数据层工厂类)
80 0
数据层设计与开发(数据层工厂类) | 学习笔记