class 能不能这么写
我们知道大师写的类和我们自己写的类一般都是有明显区别的。比如偶有用
c++,c#语言写过配置文件处理类。我所考虑的只是能够实现问题,也就是如果
能够正确的读取我想要的配置文件,进行正确的解析就可以。
有看过大师写的配置文件类,包含跨平台,ansi/unicode 兼容等特性。。。。
一般来说,类兼容的特性越多,速度往往越慢(言多必失基本就是这个道理)。
一个类如果加入了线程安全,跨平台特性,安全性,易用性等特性后。速度往往比
只实现“功能”的那个版本慢。
为什么类不能写成可配置的呢?如果我需要安全性我就启动安全检测部分代码,
我需要跨平台特性,我就启动对应代码,需要线程安全特性同样如此。。。
想了下应该还是可以做到的,一种做法是通过宏实现。请看下面代码:
class a
{
#ifdef part1
void f1()
{
#define content1
//这里可以进行安全检测
#endif
#define content2
//这里是跨平台部分代码
#endif
}
void f2();
#endif
#ifdef part2
void f3();
void f4();
#endif
}
如果我定义了 part1 宏就启动 f1() f2() 函数,如果定义了 part2,就启动
f3() f4() 函数。 如果定义了 content1 就启动安全检测部分代码等。。。。
可以看到如此写一个类,要定义的标志太多了,代码可读性也不好,复杂度也比较高。最后恐怕要专门为这个类写个宏定义说明文档了。至于有多少人愿意配置就不得而知了。
另一种实现方法是给每个类分配一个配置文件,通过配置文件启动代码的不同功能特性。我想情况会有一些改观,至少可读性好点了:)。如果能够根据类配置属性动态生成代码文件,这样可读性就更好了。
启动类具备的功能特性前提条件是这些代码能够比较容易隔离。如果这部分代码和基本功能本身代码紧密的耦合在一起,恐怕实现起来就很困难了。
浙公网安备 33010602011771号