模块化开发

模块化的提出:对于一些程序,函数组成少的时候,可以放在一个源文件中。

如下面的“猜硬币游戏”,只有4个函数组成

#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;
}
View Code

但是,当程序很复杂或由很多函数组成的时候,要在一个源文件中处理如此如此众多的函数会变得很困难。

需要将这些函数分解成多个源文件(此即模块),每个源文件包含一组相关的函数。

如何划分模块??

1.同一模块中的函数功能较类似,不同模块中的函数联系很少 

2.减少模块间的相互依赖程度

也就是:

模块化思想

1.     将系统分成很多的模块,模块内部关注自身需要实现的核心业务。

2.     模块化的典型特点是:“模块间的低耦合”和“模块内的高聚合”。

模块化例子参考

原文地址:https://www.cnblogs.com/skylover/p/7124153.html