OOP (Object-oriented Programming) e.g., C++, Enterprise JAVA, Object-oriented PHP
FP (Functional Programming) e.g., Haskell, Scheme, Erlang
AOP (Aspect Oriented Programming) e.g., AspectJ
COP (Concurrency Oriented Programming)
应该说OOP和FP有一定的可比性,AOP看起来更像是另一个角度的事情,且把它放进来凑数吧。某位萌同学问这些有什么区别呀,都在说什么,本以为可以较为良好的解答,却稀里糊涂说了很多发现自己也不甚了解。且写个博文,记录看到想到的相关内容。
//-----------------------------------------------------------------------------------------------------------------
OOP
特征:面向对象的特征是绑定数据(Data)和数据相关函数(Function)。面向对象思想认为软件开发应参考与软件相关的现实世界中的事物,并对其进行抽象,得到对象(Object)以及对象的特点(属性Property)和行为(方法Method)。
数据:绝大部分情况下,一个对象的属性(数据)