問題
使用時機?非得用嗎?
解決方法
Object-Oriented以下簡稱OO
寫程式一段時間,才對OO有一些自己的看法,可以在這分享一下!
物件導向概念
先簡單舉例說一下OO的概念
想像一下到7-11買純喫茶,您會做什麼事?
大概就差不多就是 拿到櫃檯,付錢,拿走純喫茶
那對收銀員來說,就是 收錢,找錢 全部大概就這些動作吧!
那在寫程式的時候,就會分為以上5個動作
拿到櫃檯=>收銀員收錢=>付錢=>收銀員找錢=>拿走純喫茶
而如果一寫個相關的系統,每一個動作可當做一個物件或是FUNCTION來用
如此一來,程式碼的邏輯會更簡潔,更容易理解!
說到這,寫點CODE來嚇嚇人好了!當然,這些CODE只是示意而已!
private void main()
{
//拿產品到櫃檯
int getprice= price("純喫茶")
//收銀員跟您收錢
Message.show("您好"+ getprice+"圓")
//付錢
int youpayprice=100//你掏出100圓
int getreturnprice=GetReturnPriceBack(getprice, youpayprice)
//收銀員找錢
Message.show("找您"+ getreturnprice +"圓")
//拿走純喫茶
break;
}
看到這邊,感覺不會很難懂吧!
看一下每一個物件(Function)都做些什麼事!!
//拿產品到櫃檯
private int price(int product)
{
int price = 0
//查出產品多少錢
switch(product)
{
case "奶茶": price =10; break;
case "純喫茶": price = 15; break;
}
//傳回價錢
return price
}
//付錢
private int GetReturnPriceBack(string getprice, string youpayprice)
{
//計算要找多少錢
int GetReturnPriceBack = youpayprice-getprice
//傳回價錢
return GetReturnPriceBack
}
那物件導向(OO)到底有什麼好處?
這樣好了,好處在哪要有比較才知道,所以下面的程式是"非"物件導向的方式顯示,看一下是否您能理解!!
private void main()
{
//拿產品到櫃檯
int price = 0
//查出產品多少錢
switch(product)
{
case "奶茶": price =10; break;
case "純喫茶": price = 15; break;
}
//收銀員跟您收錢
Message.show("您好"+ price +"圓")
//付錢
int youpayprice=100//你掏出100圓
//計算要找多少錢
int getreturnprice = youpayprice-price
//收銀員找錢
Message.show("找您"+ getreturnprice +"圓")
//拿走純喫茶
break;
}
當把角色都放在一起以後,是否就很容易昏頭了呢??
所以,物件導向(OO)的程式邏輯可以很清晰
而想像一下,如果在進行大的系統開發,如果程式都沒有任何物件導向(OO)的觀念在裡面
那....幾千,幾萬行的程式....你該怎麼辦?...就悶著頭苦幹吧!!
而如果程式導入物件導向(OO)的觀念,當您要維護的時候,你只要知道"是在哪一個動作"
然後去找該FUNCTION修改就可以了,而不需要把全部的程式都看過後,才知道要改在哪裡
但是說回來了,非得用嗎?
其實,是要看場合的!
因為如果程式不複雜,而功能又不會被別的程式所使用的話,那就不需要使用啦!
怎麼說?
因為雖然物件導向(OO)好處很多,但在開發的時候,要考慮到如何獨立出來?重複性?等等..相關問題,因為物件的"封裝"的好不好,將會影響到該物件(FUNCTION)實用性,進而影響程式的開發時程,因為物件封裝可是要花很多心思的呢!!
先分享到這邊囉~
沒有留言:
張貼留言