面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,为了描叙某个事物在整个解决问题的步骤中的行为。面向对象编程可以把对象的状态以及处理这些状态的函数绑定在一起,封装和继承则使我们可以管理相互依赖性,并使可以通过更清晰和更easy的方式来重用代码。泛型编程则是一种较新的风格,它可以写出一些函数和类。它们可以对其它一些没有定义的、没有关联的和未知类型”的函数和对象进行操作,从而为减少程序中耦合性和相互依赖性提供了一种独特的方式。