如果要求按需计算,一般来说可以分成多个函数更好。
在个别情况下,每个计算既需要按需,又有相当比例的公共部分,一定要设计成同一工具的话,可以用builder mode:
class Calculator {
public:
// ctor omitted
Calculator& SetParam1(...);
Calculator& SetParam2(...);
...
Result Run(...);
};
这样使用起来和扩充都会很方便。
计算单一结果使用:
Calculator(...).SetParam1(..).Run(...).result1
计算多个结果使用:
Result r = Calculator(...).SetParam1(...).SetParams2(...)...Run(...);
r.result1
r.result2
...
扩充则只需要加一个param,无需改动现有的所有使用者。
【 在 hyperLee (老李) 的大作中提到: 】
: 标 题: Re: 说起来C++还是太bare metal了, 教科书上又没有21条军规这类
: 发信站: 水木社区 (Fri May 15 09:56:55 2020), 站内
:
: 香什么?你这种struct里边每个都需要算出来,我那个按需计算。
:
: 【 在 here080 的大作中提到: 】
: :
: : memset的问题:
: : 这其实充分说明了c和c++是两门语言
: :
: : 你最后一个设计感觉并不佳。
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 114.242.250.*]
--
FROM 76.126.252.*