自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件設(shè)計(jì)的風(fēng)格

開(kāi)發(fā) 開(kāi)發(fā)工具
風(fēng)格對(duì)于軟件系統(tǒng),猶如文化對(duì)于人類(lèi)社會(huì),對(duì)于組成系統(tǒng)的各個(gè)要素(無(wú)論模塊、組件、對(duì)象還是函數(shù)),都會(huì)施加影響,只要是在運(yùn)用該風(fēng)格的邊界范圍之內(nèi)。

[[201406]]

1

風(fēng)格對(duì)于軟件系統(tǒng),猶如文化對(duì)于人類(lèi)社會(huì),對(duì)于組成系統(tǒng)的各個(gè)要素(無(wú)論模塊、組件、對(duì)象還是函數(shù)),都會(huì)施加影響,只要是在運(yùn)用該風(fēng)格的邊界范圍之內(nèi)。

這種風(fēng)格影響如文化烙印一般,體現(xiàn)出一種強(qiáng)烈的一致性。當(dāng)然,一旦選錯(cuò)了風(fēng)格,那就好像17世紀(jì)中,五月花的落魄船員們闖入了印第安人的部落,可能會(huì)是混亂、風(fēng)格的格格不入。

2

Roy Fielding對(duì)風(fēng)格的定義為:

“風(fēng)格是一種用來(lái)對(duì)架構(gòu)進(jìn)行分類(lèi)和定義它們的公共特征的機(jī)制。每一種風(fēng)格都為組件的交互提供了一種抽象,并且通過(guò)忽 略架構(gòu)中其余部分的偶然性細(xì)節(jié)來(lái)捕獲一種交互模式(pattern of interation)的本質(zhì)特征。”

這個(gè)定義有兩個(gè)關(guān)鍵詞:

  • 分類(lèi)
  • 共同特征

這兩個(gè)關(guān)鍵詞皆與抽象有關(guān)。

同時(shí),這句話(huà)還提及了風(fēng)格與協(xié)作之間的關(guān)系,即它是對(duì)協(xié)作的抽象。架構(gòu)風(fēng)格應(yīng)不涉及詳細(xì)設(shè)計(jì)細(xì)節(jié),需要找出那些穩(wěn)定不變的本質(zhì)特征,且這個(gè)特征是與系統(tǒng)的目標(biāo)與需求是相匹配的。

3

Roy Fielding在論文《架構(gòu)風(fēng)格與基于網(wǎng)絡(luò)的軟件架構(gòu)設(shè)計(jì)》中寫(xiě)道:

網(wǎng)絡(luò)研究則恰恰相反,集中于系統(tǒng)之間普通的通信行為的細(xì)節(jié)和提高特殊通信技術(shù)的性能,卻常常忽略了一個(gè)事實(shí),即改變一個(gè)應(yīng)用的交互風(fēng)格對(duì)于性能產(chǎn)生的影響要比改變交互所使用的通信協(xié)議更大。

這事實(shí)上體現(xiàn)了宏觀架構(gòu)與微觀架構(gòu)之間的關(guān)系,二者應(yīng)該保持一致。當(dāng)然,宏觀架構(gòu)的影響是戰(zhàn)略的影響,微觀架構(gòu)的影響是戰(zhàn)術(shù)的影響,在分而治之的架構(gòu)原則下,微觀架構(gòu)產(chǎn)生的影響雖然存在,但影響主要還是發(fā)生在局部。

4

畫(huà)出自己的邊界線,在邊界之內(nèi)保證風(fēng)格的一致性。邊界外,看待風(fēng)格的一致性又有另外的標(biāo)準(zhǔn)。

風(fēng)格對(duì)設(shè)計(jì)起指導(dǎo)作用,并由此驅(qū)動(dòng)對(duì)一系列架構(gòu)屬性的滿(mǎn)足。架構(gòu)屬性還包括對(duì)架構(gòu)的約束,這些約束一方面能夠?qū)υO(shè)計(jì)與實(shí)現(xiàn)進(jìn)行規(guī)范,另一方面也可以減少選擇項(xiàng),讓設(shè)計(jì)變得更為簡(jiǎn)單。

5

一種架構(gòu)風(fēng)格是一組協(xié)作的架構(gòu)約束,以及在任何一個(gè)遵循該風(fēng)格的架構(gòu)中允許存在的元素之間的關(guān)系。

將風(fēng)格視為約束是合理的,但約束更像是對(duì)一個(gè)封閉的大的集合中的裁剪,規(guī)定你不能做什么。風(fēng)格不僅要規(guī)定你不能做什么,還要告訴你應(yīng)該做什么,它要處理的是一個(gè)開(kāi)放的大的空間,我們需要找到該空間內(nèi)和諧的內(nèi)容,并把不和諧的部分剔除出去。剔除出去的這部分內(nèi)容其實(shí)就是違背了架構(gòu)約束的內(nèi)容。

架構(gòu)風(fēng)格強(qiáng)調(diào)的是軟件架構(gòu)的不同方面,一種特定的架構(gòu)可能有多種架構(gòu)風(fēng)格組成。這就體現(xiàn)了架構(gòu)風(fēng)格是有層次的。

為了保證架構(gòu)的一致性,需要在整體層面體現(xiàn)為統(tǒng)一的架構(gòu)風(fēng)格,而在不同邊界內(nèi),展現(xiàn)另外的架構(gòu)風(fēng)格。換言之,這種風(fēng)格的多樣性與隔離性,以及風(fēng)格的層次其實(shí)是與架構(gòu)的層次相對(duì)應(yīng)的。

6

對(duì)于設(shè)計(jì)風(fēng)格而言,除了要保證風(fēng)格的一致性外,關(guān)鍵的是要找到一種與正在解決的問(wèn)題最為匹配的風(fēng)格。

要了解自己需要解決的問(wèn)題,同時(shí)還要了解不同的架構(gòu)風(fēng)格的特征與優(yōu)缺點(diǎn),清楚地知道這些架構(gòu)風(fēng)格究竟適合處理哪種場(chǎng)景。

【本文為51CTO專(zhuān)欄作者“張逸”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專(zhuān)欄
相關(guān)推薦

2013-05-08 09:12:44

2019-08-12 14:45:50

軟件設(shè)計(jì)Java

2010-06-24 14:39:09

HART協(xié)議

2013-06-07 11:31:36

面向?qū)ο?/a>設(shè)計(jì)模式

2012-06-07 10:17:55

軟件設(shè)計(jì)設(shè)計(jì)原則Java

2010-06-28 15:23:43

SNMP協(xié)議

2022-07-10 07:48:26

緩存軟件設(shè)計(jì)

2009-02-20 10:25:54

UML軟件設(shè)計(jì)例程

2010-06-08 13:29:29

UML技術(shù)

2024-07-04 09:27:57

2014-06-17 09:42:05

軟件開(kāi)發(fā)軟件設(shè)計(jì)

2014-04-30 12:18:07

軟件設(shè)計(jì)

2023-10-19 13:43:00

設(shè)計(jì)模式軟件設(shè)計(jì)

2021-11-23 20:41:05

對(duì)象軟件設(shè)計(jì)

2022-09-19 06:25:14

設(shè)計(jì)模式GoF

2010-08-11 09:15:07

設(shè)計(jì)模式Python

2020-10-18 21:41:34

軟件設(shè)計(jì)語(yǔ)言開(kāi)發(fā)

2010-07-06 11:34:15

EclipseRationalJazz

2011-07-14 14:46:46

設(shè)計(jì)模式

2009-03-18 11:06:56

8020法則需求分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)