【发布时间】:2026-01-30 07:00:01
【问题描述】:
在被高级语言宠坏了一辈子之后,我正在努力学习 C++。
我想在课程中使用fluent design pattern,但我担心我会在某处犯错并牺牲性能。
假设我有一个类Builder,它有一些成员属性和方法。它的所有方法看起来都像这样:
Builder &doSomething(SomeTypeThatCouldBeAClassOrAPrimitive &thing)
{
// do stuff, such as
// modify a class member
memberThing = "something";
return *thing;
}
并说我是这样使用它的:
unique_ptr<Builder> builder(new Builder());
builder->doSomething(someVal)
.doAnotherThing(someOtherVal)
.doAFinalThing(someOtherOtherVal);
仅从提供的代码来看,是我做错了什么,还是可以更有效地完成某些事情?
如果我需要提供更多信息,请告诉我。
【问题讨论】:
-
正如 cdhowie 所指出的,您的实现是正确的(即使应用程序可能过于复杂)。但是,仅根据您问题的上下文,我建议您不要在心理上将构建器模式与流畅的界面等同起来。也许您已经了解其中的区别,但我只是认为值得一提。
-
@Nerdizzle 说得好,它们绝对不是一回事。这恰好是第一个出现在我脑海中的例子。构建器可能也是很多人第一次使用 Fluent 风格的 API。