我们执行相同的操作,总是喜欢将过程封装到一个方法里面,之后就不再从底层做起了,直接调用。
当需求越来越多,方法也就越来越多,我们使用类封装方法。后面使用该操作就直接找到类,然后再找方法。
面向过程:
针对你的需求一步一步实现,全部自己参与执行。
面向对象:
使用封装好了的一面向过程操作,直接调用,简化自己。小程序短时间或许看不出什么优势,但是后来处理多了就发现这是一种必须的聪明的做法。
现实举例:
吃饭:
面向过程:
饭怎么来?-->买米,买菜
做饭-->洗菜,煮饭,炒菜,洗碗
吃饭
家务-->洗碗,抹桌子。。。
面向对象:
我要吃饭,尽快?
餐馆可以直接吃饭。
点菜-->吃饭-->付账-->玩去了
面向对象是基于面向过程的,因为过程是必须有人完成的。面向对象的选择性更大,重视的是结果而不是过程。
可以理解成面向对象是面向过程的优化。
面向对象开发的程序,结构清晰,便于维护。
例子:
将大象装进冰箱:
面向过程做法:
打开冰箱门
大象进去
关上冰箱门
代码体现:
class DxToBx{
public static void main(String[] args){
open();
void();
out();
}
public static void open(){
//打开冰箱门
}
public static void in(){
//大象进去
}
public static void out(){
//关上冰箱门
}
}
方法调用时面向过程中非常实用的一种方法。如上图所示,结构清晰,简单快捷。但这种状况紧紧表现在小程序当中。过程中不含有对象的话,比如我的打开冰箱门又涉及到将手放到冰箱门上、往外拉等方法,那么在打开方法里面就需要调用手放到冰箱门上,往外拉等方法,还有更多可能。这样的话,在DxToBx中就存在好多并列的方法,因为方法是不允许在其他方法中声明的。过多的时候,你需要改变一个操作,就需要从上往下找过去找到对应的方法,不便于维护而且也不是那么直观了。
面向对象做法:
怎么才能符合面向对象思想呢?
A.需要哪些类
B.每个类要做什么
C.类和类的关系
把大象装进冰箱的分析。(如何分析有哪些类呢?UML类图。名词提取法)
大象
进去
冰箱
打开
关闭
Demo
main方法
类与类的关系:
Demo中使用大象和冰箱的功能
代码实现:
Class Dx{
public void in(){
//..
}
}
Class BX{
public void open(){
//..
}
public void close(){
//..
}
}
Class Demo{
public static void main(String[] args){
Dx dx=new Dx();
Bx bx=new Bx();
bx.open();
dx.in();
bx.close();
}
}
虽然这样看起来代码更复杂,但结构更加清晰,更易于后期的维护
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。