C++程序的耦合性设计
声明:本文部分采用和参考《代码里的世界观-通往架构师之路》中内容,可以说是该书中耦合性一章的读后感,感谢该书的作者余叶老师的无私分享。 1.什么是耦合? 耦合其实就是程序之间的相关性。 程序之间绝对没有相关性是不可能的,否则也不可能在一个程序中启动,如下图: 这是一个Linux中socket TCP编程的程序流程图,在图中的TCP服务器端,socket()、bind()接口、listen()接口、accept()接口之间肯定存在着相关(就是要调用下一个接口程序必需先调用前一个接口),也就是耦合,否则整个TCP服务器端就建立不起来,以及改变了bind()中的传入的数据,比如端口号,那么接下来的listen()监听的端口,accept()接收连接的端口也会改变,所以它们之间有很强的相关性,属于紧耦合。所以耦合就是代码的相关性,如果还不明白,也没关系,继续看下去,相信你会懂的,哈哈。 2.耦合的形式 (1)数据之间耦合 在同一个结构体或者类中,如: typedef struct Person { int age; char* name; }Person; class Person { private: int age_m; bool namePresent_m; std::string name_m; }; 在上面的结构体和类中,年龄和名字两个基本数据单元组合成了一个人数据单元