Static members class vs. normal c-like interface

前端 未结 2 530
离开以前
离开以前 2020-12-11 19:03

Hey there.
After reading here about the Service Locator pattern, it got me thinking wether a class with only static members really is the way to go, or if a normal c-lik

2条回答
  •  一整个雨季
    2020-12-11 19:45

    Your proposal with namespaces has a slight weakness in maintainability - if you need to change the interface for some reason, you have to remember to change both the interface (.h) and implementation (.cpp), or a mismatch may not be detected until link time. If you use a class, then the compiler can detect an error such as a number of parameters mismatch.

    On the other hand, since the implementation (service_) in your case only appears in the .cpp file, you may be able to change the private implementation of the locator without forcing a recompile of code that depends on the locator. (Common class-based patterns can provide this same encapsulation.)

    These are fairly minor differences. A public namespace containing functions is almost exactly the same as a class with only static member functions.

提交回复
热议问题