从事开发工作有一段时间了,现在沉下心来从头开始梳理一遍java知识。
以前对编程思想只停留在死记硬背,现在通过学习一些通俗易懂的文章总算对一些编程思想总算可以不用书面的语言进行描述。
是一些个人的理解,希望大家看到有不对的地方能提出来一起学习。
面向过程:耦合程度高,不易拓展,维护
顾名思义,就是对事务进行中的每一个过程都要一一列举出来。但是中间如果有步骤有变化,必须针对步骤进行更改
举个例子:把大象装进冰箱需要几步
1.开冰箱门
2.塞大象
3.关冰箱门
但是如果不把大象塞进冰箱,塞进别的地方,那么就要把第一步和第三部都做出更改。代码拓展维护很吃力。
面向对象:耦合程度降低,通过继承提高了拓展性,通过多态提高了可维护性
面向对象产生了就是为了解决面向过程难拓展,难维护的问题。他针对面向过程无法拓展的缺陷,在事务开始前,通过封装将事务看成一个整体,对事物的操作,不直接接触到操作的具体步骤,而是通过操作对象来进行操作。通过继承提升系统的可拓展性,同一个类只需要简单的继承就可以拓展处新的功能。多态来提高系统的可维护性,同一个接口可以有不同的实现。
举个例子:装大象进冰箱,你只需要雇一个人来完成,跟你实际有联系的是被雇佣的那个个体,他通过什么方式完成,你不用关心。
面向接口:多态的具体实现,符合面向对象五个原则里面的(里氏替换原则)和(依赖倒置原则)
面向接口编程,就是针对抽象编程。类与模块直接的交互通过接口来进行。而不依赖具体的实现类。
举个例子a通知b打球,b来的很慢。a就叫c来打球。如果一个类不能完成任务可以通过父类调用其它子类的方法来完成。
面向切面:是将程序运行过程分解成不同的层面。从动态角度考虑程序运行过程
目前理解的还不是很深刻。以后慢慢学习,在j2ee中主要帮助模块处理一些,安全,日志等问题。