四、初识耦合(一)

什么是耦合

  我们总是听到说这有耦合,那要解耦。耦合看起来很高大上的名词,实际上耦合代表的就是各种元素之间的依赖性和相关性。

耦合的种类

  • 数据之间的耦合;例如:
class Person{
      string name;
     int age;
 }

  name和age属于同一个类里面,他们就产生了耦合

  • 函数之间的耦合;

  同理,一个类中的两个函数也有相关性。如果两个函数之间有调用,即使不在同一个类中,也有耦合。例如:DriverCar()函数就和FillFuel函数产生了耦合。 

public DriverCar(){
    if(isFuelEmpty){
        station.FillFuel(this.car);
    }
    Drive();
}
  • 数据和函数之间的耦合;

不是所有的耦合都是不好的

  我们平时过于强调解耦,所以很多人误以为耦合是个贬义词。这里有必要澄清一下:其实大多数的耦合是业务逻辑的要求,是为了满足正当的需求所产生的。对耦合要一分为二地看待有好耦合,也有坏耦合。

  好耦合:对应业务需求或者系统限制,我们有时还要强化它:将隐式的变成显式的,将松散的变成内聚的。

  坏耦合:预料之外的耦合,尽量剔除。  

  

原文地址:https://www.cnblogs.com/juanzhi/p/12330698.html

时间: 2024-10-05 10:06:49

四、初识耦合(一)的相关文章

MVC系列学习(四)-初识Asp.NetMVC框架

注:本文章从伯乐那盗了两张图,和一些文字: 1.MVC设计模式 与 Asp.Net Mvc框架 a.MVC设计模式 MVC设计模式 是一种 软件设计模式,将业务逻辑 与 界面显示 分离,并通过某种方式 灵活改变代码设计方式. 它的优点是,降低了 页面呈现 和 后台业务的 耦合度. b.Asp.Net Mvc框架 它是微软 基于 MVC设计模式开发的一套 新的 Web机制. 传统的MVC设计模式,通过配置文件的方式,来决定控制器访问Model和视图 . 微软采用了一种"约定大于配置"的理

01 python安装与初识

一.简要概述 python学习时设计要大于开发. 二.编程语言 1.分类 编程语言分为高级语言和低级语言.高级语言如python.c#,Java.PHP等,低级语言(基础语言)如C.汇编语言. 2.机器码和字节码 高级语言生成字节码,低级语言生成机器码.机器码可以直接执行,是电脑的CPU可直接解读的数据,有执行速度快的特点,但难懂.字节码是一种中间状态(中间码)的二进制代码(文件),编译器将源码编译成字节码,特定平台上的虚拟机器将字节码转译为可以直接执行的指令.面临开发效率和执行效率的抉择. 三

初始数据库

一 下载安装 #二进制rpm包安装 yum -y install mysql-server mysql 源码安装mysql 1.解压tar包 cd /software tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21 2.添加用户与组 groupadd mysql useradd -r -g mysql mysql chown -R mysq

xiaoluo同志Linux学习之CentOS6.4

小罗同志写的不错,弄个列表过来啊 Linux学习之CentOS(三十六)--FTP服务原理及vsfptd的安装.配置 xiaoluo501395377 2013-06-09 01:04 阅读:5665 评论:8 Linux学习之CentOS(三十五)--配置域从DNS服务器以及缓存DNS服务器 xiaoluo501395377 2013-06-07 00:09 阅读:6348 评论:1 Linux学习之CentOS(三十四)--配置域主DNS服务器 xiaoluo501395377 2013-0

与python的第一次邂逅

python简介 一.什么是python python是一种面向对象.直译式的计算机程序语言,所以有了武老师的那句名言:一切皆为对象 python的设计哲学是:“优雅”,“明确”,“简单” python那些能做的事:web程序,GUI开发,自动化运维,领域涉及到数据分析,量化投资,系统编程,组件集成.网络服务,图像处理,数值计算和科学计算,自动化测试,爬虫 二.和其他语言的对比 1.python自身的优缺点: python是一种全栈语言,不仅可以做前端,还可以做后端,并且开发效率高,同样的功能比

LVDS原理及设计指南--以及衍生的B-LVDS-M-LVDS--CML-LVPECL电平等

http://www.cnblogs.com/TFH-FPGA/archive/2012/09/13/2683112.html LVDS是一种低摆幅的差分信号技术,它使得信号能在差分PCB 线对或平衡电缆上以几百Mbps的速率传输,其低压幅和低电流驱动输出实现了低噪声和低功耗.      IEEE 在两个标准中对LVDS 信号进行了定义.ANSI/TIA/E IA -644 中,推荐最大速率为655Mbps ,理论极限速率为1.923Gbps 一.LVDS组成 LVDS 信号传输一般由三部分组成

Python进阶(四十九)-初识Flask Blueprint

Python进阶(四十九)-初识Flask Blueprint 前言   在进行Python Web开发时选择Flask框架.项目模块划分阶段,使用Blueprint(这里暂且称之为“蓝本”).Blueprint通过把实现不同功能的module分开,从而把一个大的application分割成各自实现不同功能的module.在一个Blueprint中可以调用另一个blueprint的view function, 但要加相应的blueprint名.   Blueprint还有其他好处,其本质上来说就

python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sys.argv) #打印相对路径,在pycharm输出结果是绝对路径,因为在pycharm中调用 print(sys.argv[2]) #可以从数据列表中取值,[2]指取第三位.        标准库存放位置:C:\Python35\Lib 第三方库存放位置C:\Python35\Lib\site-p

capwap学习笔记——初识capwap(四)

2.5.7 CAPWAP传输机制 WTP和AC之间使用标准的UDP客户端/服务器模式来建立通讯. CAPWAP协议支持UDP和UDP-Lite [RFC3828]. ¢ 在IPv4上,CAPWAP控制和数据通道使用UDP.此时CAPWAP报文中的UDP校验和必须设置为0.AC上的CAPWAP控制报文端口为UDP众所周知端口5246,数据报文端口为UDP众所周知端口5247 ,WTP可以随意选择CAPWAP控制和数据端口. ¢ 在IPv6上,CAPWAP控制通道一般使用UDP,而数据通道可以使用U