很多“框架”设计出来后,你用了一丁点东西吧,都要求你背负整个框架的大包袱。这样很不好。
软件应该由用户选择自己用到的功能,而能将不必要的功能去掉。一个好的软件设计,应该可以增大也可以减小的。
从这种意义上,.net 的dll封装模式,就不如java的class + jar zip包模式高明。dll 是个大包,可能包含了很多用不上的类,作为面向对象的封装模式,细化到类是有意义的。假如你的程序只使用框架的某个类,那么你只需要包含这个类的class文件,然后包含这个类自身的相关引用,然后类推下去。
比如,子类需要相关的基类,和其用到的类。
如果设计该类的程序员遵照比较规范的面向对象原则,可以预见,应该不会用到根本排不上用场的代码。
因此,精简软件容量就有希望了。
可以缩小,说明软件的模块化做得很好,要增大就没有多大难度了。