資源描述:
《高煥堂軟體設(shè)計(jì)力-02》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Part2十個(gè)主要的接口設(shè)計(jì)模式(InterfaceDesignPatterns)ByMISOO1.KnowUnknownpatternIntent:以接口來(lái)承接未知或變動(dòng)之需求。Force1:SystemAnalyst經(jīng)常面對(duì)未知的需求(unknownrequirements)Force2:Programmer不能在program裡寫(xiě)上"unknown"keyword。Solution:Designer設(shè)計(jì)接口(interface)去面對(duì)unknownrequirements。Consequences:知之為知之,不知為不知,
2、是知也。SA可以追求真知,承接真知是設(shè)計(jì)力的極佳表現(xiàn)。2.ProgramtoInterfacepatternIntent:讓接口之雙方能獨(dú)立成長(zhǎng)又互相輝映。Force1:兩個(gè)相關(guān)system經(jīng)常需要異地分工及並行開(kāi)發(fā),開(kāi)發(fā)過(guò)程各改變?cè)谒y免。Force2:兩個(gè)system需要不斷配合對(duì)方改變,導(dǎo)致溝通成本提高,並行開(kāi)發(fā)效率下降。Solution:雙方都Programtoaninterface。Consequences:雙方依據(jù)接口而分工,施工細(xì)節(jié)不互相干涉,有效並行開(kāi)發(fā),進(jìn)而time-to-market。3.InterfaceC
3、reationpatternIntent:接口設(shè)計(jì)在先,分工在後。Force1:分工生產(chǎn)依賴Interface。Force2:Interface是兩個(gè)最終產(chǎn)品的銜接點(diǎn)。Force3:在分工時(shí),最終產(chǎn)品還未誕生。Solution:對(duì)最終產(chǎn)物構(gòu)思其形(form),從兩個(gè)形磨合出Interface。Consequences:以well-designedinterface為分工之依據(jù),分工之後也能自然整合了。1.IntegritypatternIntent:透過(guò)接口整合,達(dá)到優(yōu)質(zhì)的系統(tǒng)整合。Force1:大型系統(tǒng)經(jīng)常包含許多Interf
4、ace。Force2:Interface之間難免互相衝突。Solution:各part之interface先匯集,相互磨合、修正到合乎整體(whole)和諧之要求。Consequences:透過(guò)接口磨合,既能達(dá)到系統(tǒng)整合,又能維持PnP。避免因追求系統(tǒng)整合而失去PnP之效益。2.OrganicpatternAccordingtoChristopherAlexander,anorganicorderisachievedwhenthereisaperfectbalancebetweentheneedsofpartsandthenee
5、dsofthewhole.Intent:一種形(form),讓整體能有機(jī)成長(zhǎng)。Force1:Theneedsofparts經(jīng)常互相衝突。Force2:Theneedsofwhole極需要和諧(harmony)。Solution:規(guī)畫(huà)一個(gè)part代表whole以維持harmony,規(guī)劃一個(gè)part來(lái)銜接其它parts以支持PnP。Consequences:以柔軟而逐漸成長(zhǎng)的architecture,強(qiáng)力支持component之蛻變,接近生物的有機(jī)成長(zhǎng)。1.AdapterpatternIntent:封裝外來(lái)的專屬接口,降低相依性。F
6、orce1:使用外來(lái)system,經(jīng)常需要使用它的專屬interface,因而產(chǎn)生dependency。Force2:depending外來(lái)interface,就無(wú)法有效PnP。Solution:善用adapter,把外來(lái)專屬接口轉(zhuǎn)變?yōu)樽约河喍ǖ慕涌?。Consequences:adapter如同壁虎(即system)的尾巴,將連同外來(lái)系統(tǒng)一起被PnP掉,但不影響自己的系統(tǒng)(即壁虎)。2.MBpatternIntent:降低adapter間之相依姓。Force1:system經(jīng)常需要與其它system溝通。Force2:adapt
7、er是壁虎的尾巴,會(huì)隨system而PnP。Force3:在PnP掉adapter時(shí),經(jīng)常牽動(dòng)多個(gè)其他adapter。Solution:設(shè)計(jì)adapter的共同adapter。Consequences:此共同adapter就是一個(gè)softwareMB,而小adapter就成為他的port。1.CPUpatternIntent:統(tǒng)一管理整合性的rules。Force1:各system經(jīng)常需要提供整體性的數(shù)據(jù)給它的user,其整合性之rules常分散於各system。Force2:為了維持整體和諧,需要對(duì)整合性rules進(jìn)行統(tǒng)一管理
8、。Solution:設(shè)計(jì)一個(gè)system,它代表whole而負(fù)責(zé)協(xié)調(diào)其它system,確保完整性和即時(shí)性。Consequences:此system就是一個(gè)softwareCPU,成為整體的決策中心,它也很容易PnP它來(lái)面對(duì)rules的迅速變化。9.SWsuppo