白话C++编程程序员

白话C++编程之“一处定义”原则

2017-12-05  本文已影响25人  小宁静致远

原则一:

一处定义 原则。

我最信奉的原则之一。

就是:

---------------------

对一个功能、类  只  定义在  一个  地方。

就像聊天时  只  用 打开微信 就行, 不用打开好多其它软件。

又好比,钱  只  放在钱包中, 而不是把钱放到桌子上, 放到椅子上,放到书柜上, 放到衣服兜里, 放到裤兜里, 放到书包里, 永远  只  放到自己的 一个 钱包里, 这样用钱时, 只 用直接找这个钱包就行了。

如果你玩儿区块链,你一定想把所有币种、交易所的账号和钱 都 只 保存到 一个 钱包里, 这样一定非常方便管理。

另外,如果你密码、账号太多, 你一定喜欢 OnePasswod 这个软件吧?

好处:

---------------------

1. 修改时永远  只  修改这  一个  地方。

2. 增加功能时也  只 在  一个  地方修改。

3. 将变动  只  缩小到  一个  地方。

4. 一处修改,所有用它的地方都生效。

编程中的应用:

---------------------

比如:

标准库函数 std::cout 输出函数, 它只定义在一个地方,任何地方都可以用它。 当那天说输出的内容不同了,想改变输出的内容,那么代码中比如有500、上千上万次用了这个函数,如果你去修改每个调用这个函数的地方,那么将会被累死,并且极可能(几乎是一定)出错。 

可,现在,你只用修改 std::cout 本身就可以了

一处修改,所有处生效 

随便说一下: 标准库是C++世界的顶尖科学家们写的,非常稳定,通常是不会做修改的。 这里只是举个例子。

如果是我们自己定义个函数,想改变它的功能,我们也不必去修改所有调用它的地方,我们只需要修改这个函数就好了。

//找找两个整数中谁更大

int bigOne( int iLeft, int iRight )

{

      if( iLeft > iRight )

          return iLeft;

        return iRight;

}

后来想法变了: 变成找出谁 的绝对值更大,那么我们只需要修改这个 bigOne( )函数就行。

具体怎么修改呢?

留给大家当练习吧。

有没有同学想试试? 主动一点来获得成长吧

另外, 大家想想在这三周的学习中,你有没有 看到 一处定义的例子? 如果有, 是什么?

欢迎留言、讨论!

上一篇 下一篇

猜你喜欢

热点阅读