1.历史上出现的编程方法
1)结构化编程
程序应该按自上而下的顺序执行,不会做随便跳转。主要为了提高可读性(特别是控制结构的),可自上而下的阅读代码,并且执行的顺序也大体是这样的。
它的三个组成部分:顺序Sequence,选择selection,循环(或迭代)repetition (or iteration)。任何控制结构都可以用这三个部分组成。
需要小心使用其他方式如:break,continue,return,throw-catch.
2)模块化编程
将逻辑相关的数据和函数放在一个模块中。
VB中的Module就是这个思想的应用。
它没有多个实例的概念,相当于面向对象中的仅包含静态方法和静态变量的类。不需要实例化即可直接调用方法,只存在一个"实例"。
3)面向对象编程
主要特点:封装(Encapsulation),继承(Inheritance),多态(Polymorphism)。
封装:将逻辑相关的数据和方法(函数)放在一个类中。跟模块化编程做的一致。
继承:将内容或接口重用,并实现类型的多态。
多态:不同的语义环境下,同一名称可以有多种不同的实现。
具体表现为两类:
同名方法不同内容,实现方式:使用重载(overload),当然方法的参数是不同的;
同名类型不同内容,实现方式:使用覆盖(override)或实现(implement)。允许使用同一接口调用不同类的的实例对象。
2.各种方法的目标
结构化编程。重点是是控制结构,可看作是基本程序语句(无子程序)的结构;
子程序化编程。似乎没有相关的历史潮流,但我认为加入认为的加入它会使整个方法的发展过程更加完整。也许这个大家都认为是当然的了?子程序(或过程、函数、方法)是模块化、面向对象编程的最重要的基石。
模块化编程。重点是将数据和子程序逻辑相关的组合;
面向对象编程。在模块化的基础上重点加入了模块之间的关系。这里的模块已演化为类。
3.方法体系
上述几种编程方法可以归为一类,属于一个方法体系,其重点在于编程本身,力图有效管理并降低程序逻辑的复杂性。
随其发展,管理的代码单元越来越大,越来越复杂,其方式也越来越接近日常的思维。
其辅助技术或方法有编辑器、调试器、UML、软件工程等。
我认为此体系中新的方法还未出现。现在流行的方法中:AOP面向方面编程,仅是此体系有益的补充;SOA面向服务架构,重点在于用统一的方式调用,而不依赖于底层技术,是组件化的一种形式,这不是这一类的主线方向。
4.总结:
以往的编程方法和原则在现代的方法中得到了保留和发展,这对新手是一个挑战,不循序渐进的学习这些技术,想要短期学会现代方法(如:面向对象编程)是困难的。
记住这些编程方法的主旨是很有好处的。
新的编程方法必将是历史方法的继承和发展,所以学好这些旧的方法非常重要。
掌握这些在各种层出不穷的新语言和新工具中不变的精华,或许,你可以不再那么疲于追赶新的技术潮流。