模块化的提出:对于一些程序,函数组成少的时候,可以放在一个源文件中。
如下面的“猜硬币游戏”,只有4个函数组成
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void prn_instruction();
void play();
int get_call_from_user();
int main()
{
prn_instruction();
play();
return 0;
}
void prn_instruction()
{
cout << "这是一个猜硬币正反面的游戏";
cout << "具体规则如下:";
}
void play()
{
int coin;
char flag = 'Y';
srand(time(NULL)); //设置随机数种子
while (flag == 'Y' || flag == 'y') //程序继续进行下去
{
coin = rand() * 2 / (RAND_MAX + 1); //生成0 or 1
if (get_call_from_user() == coin)
cout << "你赢了";
else cout << "你输了";
cout << "\n继续玩吗??(Yory)";
cin >> flag;
}
}
int get_call_from_user()
{
double guess;
do {
cout << "\n输入你的选择(0表示正面,1表示反面):";
cin >> guess;
} while (guess != 0 && guess != 1);
return guess;
}
但是,当程序很复杂或由很多函数组成的时候,要在一个源文件中处理如此如此众多的函数会变得很困难。
需要将这些函数分解成多个源文件(此即模块),每个源文件包含一组相关的函数。
如何划分模块??
1.同一模块中的函数功能较类似,不同模块中的函数联系很少
2.减少模块间的相互依赖程度
也就是:
模块化思想
1. 将系统分成很多的模块,模块内部关注自身需要实现的核心业务。
2. 模块化的典型特点是:“模块间的低耦合”和“模块内的高聚合”。
模块化例子参考