物件導向程式是定義一堆類別(Class)
執行時會 new Class() 得到一堆實體(Instance)
我說公司裡的每一個員工就像是一個Instance
Class是他們的職稱
Class裡code是他們的工作內容
或者更嚴謹一點地說
Interface是他們的職稱
每個人都有一個自己的Class去實作職稱
而且每個Class都是Singleton (但是這樣講就太複雜了)
上面所說的,是在建立一間公司的物件導向模型
我們寫物件導向程式為什麼會需要使用設計模式
就是因為設計模是能夠讓程式更好維護和有彈性
而且是經過許多專案和時間的驗證
對公司來說,設計模式可以說是公司制度
好的公司有好的公司制度,如果我們將這些制度抽離出來
那就是公司的設計模式
從這個角度看就可以說明一間公司有良好的制度
會使得公司在環境改變下求生存的機率提升(因為有彈性和好維護)
也可以說明一間公司制度設計得太複雜(過度設計 (Over Engineering))
就會造成效率低落,因為員工把大部分的時間都拿去維護制度了
所以一個好的公司領導人應該要會的是設計良好的制度,比方說建立SOP等等
還要讓員工和員工之間低耦合,這樣有人要離職的時候才不會很慘 = =
或者我們可以用OOAD的概念去設計公司制度
最後,一人公司就是神之物件的代表
2 則留言:
很有趣的反思,物件導向本質就是將個體的抽象化概念。
而程式,本身就是用來設計各種模擬,當然公司也是可以模擬的。
只是 ...
>> 物件導向程式是定義一堆類別(Class)
>> 執行時會 new Class() 得到一堆實體(Instance)
實體(Instance)也稱之為物件(Object)
類別(Class)和物件(Object)的差別在於,這兩者分屬於C.T(Compiler Time,編譯時間)和R.T(Run Time,執行時間)的稱呼。
>> 我說公司裡的每一個員工就像是一個Instance
>> Class是他們的職稱
>> Class裡code是他們的工作內容
這應該是勞動工廠吧!所以人的動作都相同。
>> 或者更嚴謹一點地說
>> Interface是他們的職稱
>> 每個人都有一個自己的Class去實作職稱
這是設計公司!人們有相同的稱呼和動作,但是動作細節各有不同。
>> 而且每個Class都是Singleton (但是這樣講就太複雜了)
老大 ... 雖然知道你想表達唯一的概念。
只是,這樣設計會出現太多分散的獨立單元,導致整合上的困難。
畢竟Singleton,除了唯一外,其中也包含了跨類別的權限存在概念,所以通常是指整個程式中不可撼動的唯一性。
而通常,Singleton會解釋為部門或高階主管這些不可有二的存在。
對員工的獨立概念,只要在類別加上些許的參數變化,在成為物件時就已經算是獨立的個體。
其實我不太清楚什麼時機才適合使用 Singleton
張貼留言