[9]面向物件與面向過程
阿新 • • 發佈:2018-12-12
前言:主要為個人筆記
面向過程:將問題分析成一個個步驟,將步驟一一在函式中實現,使用時不斷呼叫即可。
面向物件:將問題分析成一個個物件,描述每個物件擁有的行為和屬性。
舉例:
打電話
面向過程:開啟手機,找聯絡人,撥號,聊天,結束通話。
面向物件:人(開啟手機,找聯絡人,撥號,聊天,結束通話)。
公交車
面向過程:開車,到站停車,開車
面向物件:公交車(開車,到站停車,開車)
思考方式:
如果我現在需要一個正方形,長方形,三角形自轉
都先確定自轉點,不同的圖形有不同的自轉點,座標為(x,y)
面向物件者:
class Shape{ int x;//x軸 int y;//y軸 void rotate(){ //旋轉360° } } class Square extends Shape{ void rotate(){ //旋轉360° } } class Rectangle extends Shape{ void rotate(){ //旋轉360° } } class triangle extends Shape{ void rotate(){ //旋轉360° } }
面向過程者:
class Shape{
int shapeNum;//形狀的編號
int x;//x軸
int y;//y軸
void rotate(shapeNum,x,y){
//旋轉360°
}
void rotate(shapeNum,x,y){
//旋轉360°
}
void rotate(shapeNum,x,y){
//旋轉360°
}
void rotate(shapeNum,x,y){
//旋轉360°
}
}
面向物件:
優點
靈活,維護方便,複用性高
缺點
效能略差於面向過程
面向過程:
優點
不用像面向物件那樣不停的生成物件,佔用資源。效能較優
缺點
維護起來麻煩,不靈活,複用性差