您认为每个命名空间"分支"的理想数量是多少?人们会决定将一个名称空间分成多个名称空间?我们不讨论类的逻辑分组(假设它们在逻辑上被正确分组),在这一点上,我将重点放在可维护类和不可维护类的数量上.
"42?不,它不起作用......"
好吧,让我们的编程能力发挥作用,看看微软的意见是什么:
# IronPython import System exported_types = [ (t.Namespace, t.Name) for t in System.Int32().GetType().Assembly.GetExportedTypes()] import itertools get_ns = lambda (ns, typename): ns sorted_exported_types = sorted(exported_types, key=get_ns) counts_per_ns = dict( (ns, len(list(typenames))) for ns, typenames in itertools.groupby(sorted_exported_types, get_ns)) counts = sorted(counts_per_ns.values()) print 'Min:', counts[0] print 'Max:', counts[-1] print 'Avg:', sum(counts) / len(counts) print 'Med:', if len(counts) % 2: print counts[len(counts) / 2] else: # ignoring len == 1 case print (counts[len(counts) / 2 - 1] + counts[len(counts) / 2]) / 2
这为我们提供了每个命名空间的类型数量的以下统计信息:
C:\tools\nspop>ipy nspop.py Min: 1 Max: 173 Avg: 27 Med: 15
使用现代IDE和其他开发工具,我会说如果所有类都属于命名空间,那么为了可维护性,没有任意数字可以分解命名空间.