日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

设计模式:Mogwai或Gremlins?

發(fā)布時間:2024/1/1 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式:Mogwai或Gremlins? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1994年出版的《 設(shè)計模式:可重用的面向?qū)ο筌浖脑亍废蛟S多軟件開發(fā)人員介紹了“針對常見設(shè)計問題的簡單明了的解決方案目錄”的概念,如今幾乎每個面向?qū)ο蟮能浖_發(fā)人員都將其稱為“ 設(shè)計模式”。 。” 像大多數(shù)技術(shù)概念(無論是真實的還是炒作的還是介于兩者之間的)一樣,“設(shè)計模式”似乎經(jīng)歷了接受的正常階段,從新思想Swift發(fā)展為普遍的思維方式。 與往常一樣,由于設(shè)計模式被過度使用,濫用和使用不當(dāng) ,流行度的Swift上升導(dǎo)致了強烈反對。 如今,正確使用設(shè)計模式似乎已被視為一種有用的工具,但通常認(rèn)為使用不當(dāng)會導(dǎo)致危險。

我通常避免在整個博客文章中都討論設(shè)計模式的優(yōu)缺點,但是最近一位軟件開發(fā)人員做出了一個類比,涉及他對設(shè)計模式的使用和濫用的觀察。這激勵了我寫這篇文章。 安迪指出,一些軟件開發(fā)人員似乎傾向于采用一種無害且意圖明確的設(shè)計模式并將其轉(zhuǎn)變?yōu)樾皭?,就像將像Gizmo這樣的Mogwai轉(zhuǎn)變?yōu)镚remlin一樣 。 在本文中,我將詳細(xì)探討為什么這是一個特別適合電影主題的類比,用于將有效使用設(shè)計模式轉(zhuǎn)變?yōu)闉E用和濫用設(shè)計模式。

1984年的電影Gremlins始于唐人街的一位發(fā)明家和父親,購買了Mogwai。 商店所有者Wing先生不愿意將Mogwai賣給發(fā)明人/父親,因為“ Mogwai承擔(dān)了很多責(zé)任”。 然而,榮先生的孫子偷偷地將莫格威人賣給了發(fā)明人/父親,同時警告他要注意的三點重要事項,即與莫格威人的照料有關(guān)。 這三件事是:

  • '讓他遠(yuǎn)離光明。 他討厭明亮的光線,尤其是陽光。 它會殺了他。
  • '讓他遠(yuǎn)離水。 不要弄濕他。
  • “但是最重要的規(guī)則,無論他哭多少,也從來沒有乞求,你永遠(yuǎn)都不會忘記的規(guī)則,永遠(yuǎn)不要在午夜之后喂飽他。”
  • 設(shè)計模式的適當(dāng)使用不受午夜后的明亮光線,水或進(jìn)食的影響,但是應(yīng)用設(shè)計模式時不小心的后果可能與不正確照顧Mogwai相似。

    快速產(chǎn)生設(shè)計模式

    當(dāng)Mogwai或Gremlins變濕時,更多Mogwai或Gremlins會自發(fā)繁殖。 對于具有設(shè)計模式的開發(fā)人員來說,效果可能非常相似。 對于剛接觸設(shè)計模式的開發(fā)人員(或者對自己最近學(xué)習(xí)的新設(shè)計模式感到興奮的開發(fā)人員),將太多的設(shè)計模式應(yīng)用于相同的問題很容易。 如果設(shè)計模式很好,那么更多的設(shè)計模式必須更好。 同樣,對于開發(fā)人員來說,很容易陷入將相同的設(shè)計模式應(yīng)用于太多不同,不同且無關(guān)的問題的陷阱( Maslow's Hammer )。

    設(shè)計模式變得邪惡

    如果Mogwai在午夜之后進(jìn)食,就會變成頑皮的Gremlins。 同樣,如果使用不當(dāng),設(shè)計模式可能弊大于利。 錯誤使用的設(shè)計模式可能會混淆代碼的意圖。 幾種設(shè)計模式一起使用也可以掩蓋意圖。 如果不謹(jǐn)慎使用,旨在促進(jìn)更好設(shè)計的設(shè)計模式通常會導(dǎo)致設(shè)計變差。 一種情況下的設(shè)計模式可能是另一種情況下的反模式。

    將常見設(shè)計原則分類為模式的好處之一是能夠幫助開發(fā)人員和設(shè)計人員之間進(jìn)行交流。 但是,當(dāng)錯誤使用或過度使用設(shè)計模式時,可能會產(chǎn)生完全相反的效果(妨礙理解和溝通)。 我也看到過這樣的情況,當(dāng)開發(fā)人員堅持使用某種特定的設(shè)計模式時,他或她實際上使用的是完全不同的設(shè)計模式甚至是反模式。 在這種情況下,使用“設(shè)計模式”術(shù)語也會造成混淆,而不是加以澄清。

    善意卻構(gòu)想

    這些問題最常見于開發(fā)人員應(yīng)用設(shè)計模式時,因為他們認(rèn)為應(yīng)該這樣做,而不是因為他們真正了解特定情況下的價值。 開發(fā)人員不僅需要了解不同設(shè)計模式的優(yōu)勢和目標(biāo),還需要了解與之相關(guān)的權(quán)衡取舍,而不是將相同的設(shè)計模式應(yīng)用于每個問題,或?qū)⒃O(shè)計模式塞入不合適的情況。設(shè)計模式,以便就設(shè)計模式的應(yīng)用做出明智的決定。

    有效利用設(shè)計模式

    在我看來,設(shè)計模式的最佳使用是當(dāng)開發(fā)人員根據(jù)觀察到需求的經(jīng)驗自然地應(yīng)用它們而不是強迫使用它們時發(fā)生的。 畢竟,當(dāng)“ 四人幫”編寫有關(guān)設(shè)計模式的書時,他們正在對開發(fā)人員已經(jīng)在使用的現(xiàn)有設(shè)計模式進(jìn)行分類。 確實,他們書中涵蓋的某些模式變得如此流行,以至于它們被合并到Java語言語法和其他更新的語言中。 例如,Java提供了接口 (這有助于原始設(shè)計模式書中介紹的許多設(shè)計模式),而諸如Scala和Groovy之類的較新語言則添加了自己的模式實現(xiàn)。

    設(shè)計模式的使用:Gizmo或Gremlin?

    如果使用得當(dāng),設(shè)計模式將具有吸引力并令人期待,就像Mozwai的Gizmo是理想的寵物一樣。 但是,如果使用不當(dāng)或在沒有適當(dāng)注意和考慮的情況下應(yīng)用設(shè)計模式,則可能會變成Gremlins,嚴(yán)重破壞代碼基礎(chǔ),并妨礙理解和維護(hù)設(shè)計的能力。 請注意,設(shè)計模式本身并不一定是問題,而是由正確使用設(shè)計模式的人來決定它們是否保持理想的狀態(tài)(例如Gizmo)或不良狀態(tài)(例如Gremlins)。

    參考: 設(shè)計模式:Mogwai或Gremlins? 由我們的JCG合作伙伴 Dustin Marx在Inspired by Actual Events博客中獲得。

    翻譯自: https://www.javacodegeeks.com/2012/11/design-patterns-mogwai-or-gremlins.html

    總結(jié)

    以上是生活随笔為你收集整理的设计模式:Mogwai或Gremlins?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。