現在看到一些工作要求上面有寫 "有物件導向概念"!
關於這個,怎樣算有呢?
有了能怎樣呢??
dingdabing提到:
有物件導向概念
基本上,有物件導向概念,不見得就能寫物件導向的程式。
我見過幾個連所謂物件導向的概念都沒有,卻用Java寫出嚇嚇叫的物件導向程式碼。
問他怎麼會寫?不知,反正腦袋裏出現的程式碼就長那樣。
問他何謂物件?又何謂物件導向?支支吾吾個半天說不出所以然。
那,什麼是物件導向?
什麼是丁大丙?
丁大丙就是物件,把丁大丙抽象化再賦于繼承和多型,就叫物件導向。
再例如,阿伯。
阿伯就是物件,把阿伯的常用語句予以抽象化,複製然後再多方應用,就是物件導向。
講遠了....
聽不懂,算了!
聽不懂就代表你這個物件沒辦法繼承我這個物件的抽象,也就沒法多型。
也因此,有物件導向概念不見得就擁有原力~~
....
....
....
丁大丙問doggyyy大:喂~~那個油達拿著光劍甩來甩去,口中唸唸有詞是發瘋了嗎?
很簡單的一個列子
面向物件就是會賦予物件 [方法] 可以由物件去取回物件
要 [訂單] 去取回所有 [訂單單身]
/*
*Get Lines of Order
*@param whereClause where clause or null (starting with AND)
*@param orderClause order clause
*@return lines
*/
public MOrderLine[] getLines (String whereClause, String orderClause)
http://www.allenkuo.com/edm/OOP201407.html
這是一位微軟MVP的OOP課程大綱
一開始就有提到「為什麼要學OOP??」
我覺得他講的很清楚,您可以參考一下
<pre class="c" name="code">
誰需要這門課
不少 ASP.NET 的開發者想學習物件導向的開發方式, 無奈坊間的課程或書籍在教 OOP 時, 都不會用 ASP.NET 來當範例, 學會理論之後仍然無法對於開發 ASP.NET 有所幫助。 我在本課程會以 ASP.NET 的應用範例為主, 教您如何開發更好維護的系統, 如何讓功能更容易擴充, 您學了之後就可以直接應用在日常工作裡並有所助益。
如果您目前已有 C# 語法基礎, 您會發現平時開發網頁時大多只在 Page 的 Load 事件, Button 的 Click 事件, GridView 的 RowDataBound 事件裡寫程式。但其實這樣的能力並不夠, 常有寫了數年 ASP.NET 網站的學生跟我說每天工作就是程式碼貼來貼去並小改, 以便交付公司規定的進度, 幾年下來自覺程度根本沒進步, 就算想改進程式碼也不知如何做起。
ASP.NET 物件導向班是一門提供給 ASP.NET 網站開發者的進階課程, 我們會教您如何撰寫類別庫(即 dll 檔案), 讓您可以在每一個專案裡加入參考後重覆呼叫這些程式, 不必再在每支程式或網站裡重覆撰寫相同的程式碼。教您如何利用物件繼承, 多型等特性來開發更容易擴充的系統。
如果您手動拉入控制項來做表單, 在 Button Click 時是否撰寫數十行程式碼來取得各控制項的值呢? 更糟糕的是每次只要欄位有增減, 就又需要同步地修改程式碼; 我們教您如何寫一個通用的物件, 讓您只需要一行就取得表單所有控制項的值, 不論各網頁表單有多少控制項, 網站有多少頁, 都只需要呼叫它, 一行程式就可以取得各欄位值。
課程裡也會提供您一個用來存取資料庫的公用程式類別, 讓您不必在每一支網頁裡重覆地撰寫Connection, Adapter, Command 等物件, 它提供您刪除/更新記錄, 選取所有或分頁記錄,...等能力。
如果您想針對Repeater, DataList, GridView, ListView 都提供一致的分頁列, 我們會教您如何撰寫一個分頁列的控制項, 每一個網頁裡只需要寫 2,3 行程式就可以讓它正常運作。
您會不會覺得看不懂 MSDN 裡的資訊呢? 這門課會教您如何看懂它, 也教您如何查看 .NET Framework 內建類別的程式碼, 讓您有機會更了解內部運作原理。 您是否學了很多次 interface(介面) 但仍然學不會, 也不懂它可以應用在哪裡呢? 經常有學員遇到這個問題, 這門課會花很多時間介紹它, 藉由多個不同範例讓您一次看個夠, 充份了解如何應用它。
這是一門兼具理論說明並用ASP.NET 為實例的課程, 請勿錯過。
絕大多數的白領工作,工作內容幾乎都是處理一堆的資料或事務。
面對這些資料或事務,該怎麼處理,就是你受僱於人之後,必須去思考的問題。而物件導向,是提供一種思考解決之道的方法,它不是唯一思考法,但如果你覺得它適合你,那就是好方法。
至於要怎麼使用物件導向來思考處理之道呢?
假設一位會計人員,拿到一份年度報表,他可以把報表資料當作物件,而物件會有屬性(物件本身特有的性質,如報表規格、幣值單位、...),及方法(可對此物件進行的動作,如列印報表、統計報表資料、匯整數據、...)。利用這樣的思考,把一個資料或事務的靜態內容與動態處理程序清楚的表達出來,就有助於規劃如何定出處理它的 SOP。這就是為什麼工作會要求"有物件導向概念"的道理。如果你連要處理的資料或事務都不知道它是什麼、該怎麼開始著手,那工作又怎麼能做得好呢?
首先說說您看到的工作項目,是分析師,設計師,程式師,還是其他類型?
要求有物件導向概念(Object-oriented concept),可以是入門的,也可以是廣泛的 (又要你分析設計編程的),非常tricky。
怎樣算有呢?
你起碼要能用業界 OO convention 來溝通:
在OOAD上,使用 Use cases 及各種圖 (Diagrams) 和參與的人討論
在OOP上,要能知道其實作上之[物件]特性,如資料的抽象化,封裝,繼承,多型等的意義及使用的優缺點
有了能怎樣呢?
當你有了 OO 的訓練後,就 OO 的 convention 與 rule 來說,你的工作上接使用者問題需求分析,下到軟體流程的實作上線使用,應該是大家都懂的、好驗證的、好維護的、好擴展的,如果符合以上條件,forward 及 backward engineering 變得很自然,你就可以把一些機械性的工作交給機器做,讓你專心在 Business cases 上,之後你就可以贊天地之化育,順便羽化而成仙。
是不是要萬事皆物件呢?見仁見智,你做久了就會有感覺,當然這感覺不一定是對的 (廢言~)
但是,物件導向中之"抽象化",會是你一生受用的工具。不僅僅在軟體上。。。
以上是個人淺見,物件導向的技術,Google大神會詳細告訴你的。
可以去反問他,
公司是否有進行單元測試並且給予足夠的時間對目前的產出進行重構。
所有的專案是否都進了版本控制系統?如何管理,是否有定期 code review。
OO是軟體工程裡,十分重要的核心
也是軟體工程的一部分
會的人才可以把程式寫的漂亮又好
不會的人寫出來的東西,讓你累的半死,老闆又不肯付錢給你,還怪你,為什麼做這麼久
原因就是,前人都被搞得太不爽,弄出一堆東西給你用
物件導向的概念包含封裝、繼承、多型...若懂這些相關的概念,寫物件導向的程式會比較容易維護,也比較容易去了解別人程式設計的概念。所以,會這樣要求的公司,應該是用物件導向語言(Java, c#...)在開發軟體的。
真佩服大家
物件導向~
什麼是物件都沒說…
然後就封裝,繼承,多型...然後就直接跳程式,跳範例,跳ASP.NET
然後就給訂單程式碼
然後就拍拍手,放煙火了