终于短短续续的把C++什么的语言囫囵团枣学了个大概。现在打算开始学框架和IDE什么的。这里我打算写几个方面的东西一是什么是框架,二是框架的阶段三决定框架能力的因素四框架设计的方向
什么是框架
框架是一种延伸。这种衍生可以使功能性的延伸,也可以是设计思想性的延伸。从框架的发展来看功能性的延伸要早于设计思想的延伸。
框架的阶段
其实早期的C函数库就可以认为一种框架,其实对于C语言的功能性的延伸扩展了C语言的许多基本功能。使得C程序员可以重用函数过程。在这个阶段框架还只是停留在功能性延伸的阶段。程序员只是可以使用既定函数库,不能方便的对函数库进行修改适应新的应用,而且函数库框架本身对程序员设计程序结构并没有指导作用。这个原因主要是C语言自身的特点决定。其是没有OO思想的语言(不是说C语言不能实现对象思想但程序员的负担太重);
后期由于C++/java/smalltalk等其他体现OO思想的程序语言的出现,使得框架不仅能提供更强的功能性的延伸。例如可以通过继承重写类库以适应新的应用环境,而且重要的是其可以在设计模式上对于程序员给与指导例如在MFC中文档/视图结构等。这种进步主要OO语言的对于数据类型抽象的支持(当然个人感觉似乎对于设计模型的支持上程序员的手工劳动还是过大,所以也许下一代程序语言应该能更好的编写支持良好设计模式的类库)。
决定框架能力的因素
当然决定框架能力因素包括设计框架者的能力财力等因素,但这不是我想说我想说的是决定框架能力的客观的颈瓶性的因素。
个人觉得决定框架颈瓶性的因素在于开发框架所使用的语言。
例如使用C等其他没有OO思想的语言作为框架实现语言那么希望这个框架能支持设计思想的重用就很困难。不是不能而是代价太高而对于C++/Java等语言则方便了很多
框架的方向
框架的在不同的应用领域就有这不同的方向早期的MFC这是将为Windows程序员更快的设计出windows程序作为己任,而后J2EE体系则是将是java 程序员开发企业级web 应用程序作为自己的己任。等等
总结
尽管框架的目标各异,但从代的角度而言决定于实现语言的能力但从企业竞争的角度而言取决于框架抽象水平,实现成本,实现效率,稳定性方面的比较。所以学习框架由于目标点的不同框架的差异很大但是对于其抽象方法的却一般是相同的。其次个人感觉以后语言的竞争会从效率等方面的竞争慢慢转向对于框架支持能力的竞争上