“不要給我們打電話,我們會給你打電話(don‘t call us, we‘ll call you)”這是著名的好萊塢原則。
基本介紹
- 中文名:好萊塢原則
- 外文名:The Hollywood principle
原則介紹,模板方法模式,軟體工程,網路編程,
原則介紹
“不要給我們打電話,我們會給你打電話(don‘t call us, we‘ll call you)”這是著名的好萊塢原則。在好萊塢,把簡歷遞交給演藝公司後就只有回家等待。由演藝公司對整個娛樂項的完全控制,演員只能被動式的接受公司的差使,在需要的環節中,完成自己的演出。
好萊塢,一個讓許多俊男靚女欲罷不能的地方。在通往成功的路上,有誰不願意通過捷徑而一炮而紅,在這之中影視聲色是許多人會嘗試的方式之一。
不過,好萊塢不是一般的場所,它不是什麼阿貓阿狗都可以進入的地方,他們不缺少俊男靚女。因此,如果你有一張俊俏的臉龐,你不要在他們面前顯擺,他們不在乎。你可能會說,我的演技非常棒,喔,沒用,這樣的人在好萊塢遍地都是。
夢想進入好萊塢的人們,你們不要找好萊塢。那怎么辦呢?答案是,讓好萊塢來找你!
這就是非常著名的好萊塢原則。
不過,好萊塢不是一般的場所,它不是什麼阿貓阿狗都可以進入的地方,他們不缺少俊男靚女。因此,如果你有一張俊俏的臉龐,你不要在他們面前顯擺,他們不在乎。你可能會說,我的演技非常棒,喔,沒用,這樣的人在好萊塢遍地都是。
夢想進入好萊塢的人們,你們不要找好萊塢。那怎么辦呢?答案是,讓好萊塢來找你!
這就是非常著名的好萊塢原則。
模板方法模式
模板方法模式充分的體現了“好萊塢”原則。IOC是Inversion of Control的簡稱,IOC的原理就是基於好萊塢原則,所有的組件都是被動的(Passive),所有的組件初始化和調用都由容器負責。
所有的framework都是遵循好萊塢原則設計的,否則就不叫framework。framework使用IoC的目的:
1.對基於接口編程的支持
2.減少單件和抽象工廠的依賴
3.降低業務和框架的耦合
4.業務組件可復用,可插拔
1.對基於接口編程的支持
2.減少單件和抽象工廠的依賴
3.降低業務和框架的耦合
4.業務組件可復用,可插拔
軟體工程
:好萊塢原則強調高層對低層的主動作用,即低層應該只管好自己的工作(具體實現),而高層自有它自己的工作(這就是管理低層的邏輯們,或者說從client到具體實現的一系列中間邏輯),在不需要到某個低層的時候,高層並不會調用到這個具體低層,低層永遠不需要向高層作出表示,,說它需要被調用,,(即在所有的處於使用者與現有代碼的中間的,用於隔離和解偶二者的,那些中間邏輯中,低層邏輯永遠不要涉入高層的實現,而只要高層通過某個邏輯去涉入低層的實現,也即低層應不要調用高層,只有高層才會去調用低層,這才是合理的,我們應儘量避免向上調用和相互調用)
網路編程
在網路編程中,特別是server端編程時,我們可能會大量利用好萊塢原則。在server端編程時,我們大多會利用OS提供的一些功能強大的時間分派機制,比如select/poll/epoll/WaitForMultipleObjects等,通過對這些機制的再次包裝和抽象,牛人們提出了著名的reactor模式(中文翻譯成反應堆模式)。在此模式中,我們使用者不用關心以下事情:
1)socket什麼時候建立連線
2)socket什麼時候有數據帶來
3)socket什麼時候把數據傳送
4)socket什麼時候下線
我們關心的是這些事件帶來的時候,我們怎么處理?比如socket建立連線了,你是否要做一些log,以便以後查看。收到數據之後,你是否要做完整性驗證等。我們不用關心事件怎么來(HOW),什麼時候來(WHEN),我們關心的唯一一件事是處理它(Do it)。在這裡如果把reactor等抽象系統比喻成好萊塢的話,網路上的數據比喻成影片或劇本的話,我們可以把我們對數據的處理比喻成演員。這裡,演員不用去找劇本,好萊塢會帶著劇本來找你,你只要乖乖著等在家裡不要亂動,等劇本來了,你給我好好處理即可。
1)socket什麼時候建立連線
2)socket什麼時候有數據帶來
3)socket什麼時候把數據傳送
4)socket什麼時候下線
我們關心的是這些事件帶來的時候,我們怎么處理?比如socket建立連線了,你是否要做一些log,以便以後查看。收到數據之後,你是否要做完整性驗證等。我們不用關心事件怎么來(HOW),什麼時候來(WHEN),我們關心的唯一一件事是處理它(Do it)。在這裡如果把reactor等抽象系統比喻成好萊塢的話,網路上的數據比喻成影片或劇本的話,我們可以把我們對數據的處理比喻成演員。這裡,演員不用去找劇本,好萊塢會帶著劇本來找你,你只要乖乖著等在家裡不要亂動,等劇本來了,你給我好好處理即可。