愛車如愛妃 大聲告訴我!你喜歡平的還是凸的?_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

而作為B級車,舒適型定位,偏向於家用或商務,那麼廠家也會妥善處理好後排的隆起高度,來提升中間乘客的舒適度。值得大家注意的是,後排是否凸起與車輛本身的強度還是安全性沒有一毛錢關係。事實上,早在設計之初,廠家就已經把底盤的零部件通通考慮進去,而不是中途“挖空”後排而犧牲車身質量。



談到後排空間的舒適度,很多人只關心軸距、高低、座椅等等,卻很少注意到後排平整度如何。其實,後排平整度也是評價後排競爭力至關重要的指標,而且相信大家無論是買車還是坐車,對於後排中央的乘坐體驗也是十分關心的。

但如今不少轎車的後排中央地板總是會莫名其妙地凸起一部分,侵佔着有限的後排空間不說,更重要的是影響了後排中間乘客的舒適度。當然,也不乏見到有些車幾乎把後排地板處理得很平整。那麼,兩者之間的差距又是由什麼引起的?

簡單來說,後排凸與不凸與車輛本身的机械結構與布局有關。後排凸起,是因為考慮到排氣管、傳動軸,甚至一些剎車管線等重要零部件需通過汽車底盤的中央部分,而為了保護這些零部件的安全性,往往只能放置在後排的凸起位置,從而抬高零部件的離地間距。對於SUV、MpV這一類的車型,則是由於自身的離地間隙較高,沒有必要刻意讓位給這些零部件,因此,SUV的後排凸起相對比較少見,但並不代表就沒有。

其次,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

現在許多車企都具有平台化造車理念,以致於旗下的車型在結構上通常有不同程度的相似,後排的凸起自然也秉承了品牌的一貫傳統,比如說大眾、馬自達。而在這樣的背景下,即便是前驅車,其後排地板仍會凸起。這是由於同一款車型還分成了四驅與兩驅,車企為了兼顧到四驅車特殊的結構布局,同時受制於成本只能選擇在前驅車上繼續採用這樣的設計。所以,單純地通過後排的凸起與否,進而來判斷車輛到底是四驅還是兩驅是不夠準確的。

當然,後排的凸起也與產品定位、設計理念等不無關係。一般來說,如果是A級車,運動型定位,那麼後排的凸起比較常見,在消費者看來倒也無傷大雅。而作為B級車,舒適型定位,偏向於家用或商務,那麼廠家也會妥善處理好後排的隆起高度,來提升中間乘客的舒適度。

值得大家注意的是,後排是否凸起與車輛本身的強度還是安全性沒有一毛錢關係。事實上,早在設計之初,廠家就已經把底盤的零部件通通考慮進去,而不是中途“挖空”後排而犧牲車身質量。就目前來說,後排凸起的現象明顯集中在德系車上,包括大眾、寶馬等品牌。而後排地板幾乎全平整的,一般在日系車、韓系車以及國產車身上的概率較大,不過也有些日系車的後排隆起還是比較明顯,如軒逸、新思域等。

說到這,不妨推薦幾款後排地板幾乎全平的車型,來告別尷尬的“劈腿”坐姿。

豐田卡羅拉

售價:10.78-17.58萬

後排平整度:

艾瑞澤7

售價:7.29-21.29萬

後排平整度:

長安睿騁

售價:10.88-20.18萬

後排平整度:

現代名圖

售價:12.98-17.68萬

後排平整度:

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

逼格有多高?關鍵看車門!這些車門我能玩一年!_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

馬自達RX-8使用對開門的初衷和寶馬i3較為相似,主要是為了方便乘客進入後排座椅,不過即使是再怎麼方便,相信也沒幾個人願意坐在RX-8的後排。鷗翼式車門向300 SL Gulling致敬的奔馳SLS-AMG,僅靠鷗翼式車門就能夠收集眾人的目光,雖然鷗翼門非常炫酷,但是日常的使用當中難免會顯得麻煩,看門前要觀察上下左右各個方位,確保有足夠空間才能夠開門。

《女子騎車突遇汽車開門:被撞倒地遭碾壓身亡》、《騎車男子遭前方車輛開門撞倒 又被公交碾壓》類似這樣的新聞幾乎每個月都能夠看見,每次看到這樣的新聞都會不禁感嘆,為什麼這麼多血的教訓擺在面前,都不懂得珍惜生命。

其實在現實中,有很多人都是沒有觀察後方路況就隨意開門的,只不過是運氣好,沒有發生意外而已。無論是在路上開車還是騎車走路,我們都要對停在路邊的車輛額外注意,盡量遠離車門,真的可能隨時來一個謀殺式的開門。

在路邊停車后開門下車前,一定要觀察後方路況,這樣的話都不知道說了多少千百遍了,既然大家都不放在心上,那麼我們也就不管了(就是這麼任性),我們來看看車門的“藝術”吧。

1989年,寶馬推出了一款很特別的跑車-寶馬Z1,它擁有着隱藏式的車門,開門時通過伸縮的方式隱藏在車身內,這樣的車門結構,能夠從源頭降低發生意外的幾率,可惜這輛神奇的寶馬Z1總共才生產了8000輛,並且只在德國和美國銷售,估計現在存活的已經很少,並且都是在收藏家手中了。

對開式車門有着“自殺式車門”的稱號,經常被人調侃,主要都是說車輛行駛當中後車門無意打開會發生怎樣怎樣的情況,其實廠家也會想到這些情況,在開門邏輯與安全性上都不斷在優化。

勞斯萊斯一直在堅持使用對開式車門,賦予了對開式車門優雅的調性,而不是什麼炫酷,據說勞斯萊斯的對開門設計,

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

還有隱藏在車門內的雨傘,就是為了女星門走紅毯設計的,能夠提供一個相對私密的空間方便下車。

寶馬i3的對開門設計非常激進,取消了車輛B柱的設計,直接用車門車門作為支撐,i3的對開門最主要目的是方面後排乘客上下車,並且有利於提供更大的車廂空間。

馬自達RX-8使用對開門的初衷和寶馬i3較為相似,主要是為了方便乘客進入後排座椅,不過即使是再怎麼方便,相信也沒幾個人願意坐在RX-8的後排。

向300 SL Gulling致敬的奔馳SLS-AMG,僅靠鷗翼式車門就能夠收集眾人的目光,雖然鷗翼門非常炫酷,但是日常的使用當中難免會顯得麻煩,看門前要觀察上下左右各個方位,確保有足夠空間才能夠開門。

如果要問什麼是鷗翼門的終極形態,那麼就不得不說到特斯拉-MODEL X了,電動開啟的鷗翼門,能夠通過傳感器探知周圍情況,從而調整車門開啟角度,即使是狹窄的空間也能夠開啟車門。

剪刀門一直都是蘭博基尼的慣用伎倆,就像是傳統文化一樣,兩者不可分離。剪刀門改裝文化也十分博大精深,改裝剪刀門也不用付出高昂的費用,所以在很多改裝車展、聚會上都能夠看見。

既像鷗翼門,也像剪刀門,將兩者融合之後,就是蝴蝶門。法拉利的靈魂-法拉利ENZO就是使用蝴蝶門,還有速度怪獸LaFerrari、奔馳SLR、邁凱倫p1。

不知道將科尼賽克-Agera的車門稱之為旋轉式車門合不合適,反正它不是隱藏式,不是對開式,不是鷗翼式,不是蝴蝶門,也不是剪刀門,非常特別,打開車門后,整個車門就像是擰瓶蓋一樣旋轉出來。

雖然這種旋轉式車門不需要很大的垂直空間,但是一定要非常留意橫向空間,千萬不要靠近馬路牙子,因為車門打開后就像是放在地上一樣,離地間隙很小。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

軸距2.7米排量2.0L 最便宜的專車回本神器僅8萬起?_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

89萬軸距:2805mm雖然帝豪EC8的表現不那麼讓人滿意,但是EC8在上市之初還是讓人驚訝了一把,吉利的造車水準越來越好,在EC8那一時期就有所體現,EC8定位中級車,敦實霸氣的外觀甚至有幾分奧迪A8的感覺。2805mm的軸距也是標準的中級車水準。

比亞迪G6

指導價:7.98-11.58萬

軸距:2745mm

比亞迪G6是比亞迪旗下的一款中級轎車,比亞迪作為價格屠夫旗下的車型一直都是十分有性價比的,G6也是很有性價比的一款中級轎車,7.98-11.58萬的售價只有合資中級車的一半左右,但是搭載的2.0L發動機以及各種配置一點都不弱,4860*1825*1463mm的車身尺寸也比較大,視覺效果不錯。

有着龐大的尺寸的比亞迪G6在內部空間上也比較優秀,尤其是後排橫向空間十分寬敞,G6的內飾設計沒有什麼特色,整體屬於比較中規中矩的設計風格,但是儀錶盤設計還是很有比亞迪的特色的。內飾的用料和做工也達到中級車的水準。

納智捷-納5

指導價:8.58-11.98萬

軸距:2720mm

納智捷-納5屬於大緊湊型轎車,全系搭載1.8T發動機,並且軸距也超過了2720mm,但是售價只需要8.58萬起,對於想要購買軸距2700mm以上的,發動機1.8T以上或者2.0L的消費者來說,這款車型也是比較划算的。

納智捷-納5的內飾也是屬於比較有新意的,尤其是儀錶盤的設計,很有科技感,但是閱讀起來需要一定的時間適應,內飾的用料和做工也都不錯。

吉利汽車-吉利EC8

指導價:8.89-11.89萬

軸距:2805mm

雖然帝豪EC8的表現不那麼讓人滿意,但是EC8在上市之初還是讓人驚訝了一把,吉利的造車水準越來越好,在EC8那一時期就有所體現,EC8定位中級車,敦實霸氣的外觀甚至有幾分奧迪A8的感覺。2805mm的軸距也是標準的中級車水準。

EC8的內飾也屬於比較方正的設計,

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

整體內飾十分的好用,但是在內飾造型設計上顯得有點古板了,儀錶盤的樣式也有些過時,不過考慮到這麼大的車這樣的價位,夫復何求呢?

一汽奔騰-奔騰B70

指導價:9.98-14.98萬

軸距:2725mm

奔騰B70的外觀有幾分馬自達的感覺,當然B70本身在底盤等部分也和馬自達有着一定的關係,因此B70的底盤表現比較讓人滿意,作為一台中級車,B70也有着不錯的尺寸,只是2725mm的軸距在中級車中實在拿不出手了。

內飾上B70倒是很有自己的設計,尤其是中控台的造型相當的別緻,在內飾的做工上B70也十分的規整,做工值得表揚,有着大廠風範,儀錶設計比較簡約,但是閱讀起來十分的方便,信息显示也很豐富,頗有幾分日系車的設計思路。

眾泰Z700

指導價:9.98-15.88萬

軸距:3000mm

軸距3000mm的眾泰Z700是一台不折不扣的中大型轎車,雖然尺寸大但是售價仍然十分親民,9.98萬的起售價許多人都可以買得起,但是眾泰的質量一直受人詬病,這款Z700屬於上市不久的新車,質量表現就有待市場檢驗了。

Z700最有爭議的就在內飾設計上,Z700幾乎是原封不動的移植了奧迪A6L的設計,甚至連MMI系統都模仿了,不過對於中大型車來說,尤其是自主車型來說,這樣的設計方法也是最簡單粗暴的。Z700整個內飾可以說豪華和山寨感充斥着,也別有一番風味。

誰說2.0L/1.8T+2700mm以上軸距的車型就很貴呢?其實7.98萬起就能夠買到嘛,自主車總是能夠給我們帶來那麼多充滿驚喜的高性價比產品,這裏衷心地為我們的自主品牌迪鼓個掌,你們說是不是呢?本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

8-15萬選家用高性價比合資車 這兩款車型你絕不能錯過!_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

而雪佛蘭科魯茲由於脫胎於最新的全球化平台,在性能表現尤其突出。動力方面除了最大功率可達84千瓦的1。5L直噴發動機以外,還有着一個動力強勁的1。4T渦輪增壓發動機可供選擇,最大功率可達110千瓦,配合的是7速雙離合變速箱,工信部油耗可以達到5。

科沃茲 or 科魯茲?

在不少人的購車過程中,很多時候會面臨着這樣的局面,“要不要加錢買一款更好的?”的確,在價格相似的情況,而且產品都能滿足自身需要的情況下,要做出選擇是比較困難的。而在最近的後台留言中,不少網友就向反映了這個問題,是應該選擇價格更低的雪佛蘭科沃茲還是加幾萬買更好的雪佛蘭科魯茲?

外觀:科沃茲更沉穩,科魯茲更運動

雖然都採用了家族式的雙格柵設計,但是兩者有着不同的感覺,雪佛蘭科沃茲設計更為中庸沉穩,非常的耐看,車身線條柔和,更顯得平易近人,就像是一個性格溫和友善的務實男人。

同樣的雙格柵設計以及帶LED日間行車燈大燈,但是科魯茲的設計明顯要更為年輕運動,在設計上感覺要比科沃茲要年輕近十年,線條剛勁突顯出肌肉感,銳眼立體式前大燈更為犀利,就像是一個陽剛少年,在西裝下隱藏着一副肌肉身材。

內飾:科沃茲更時尚,科魯茲更顯檔次

科沃茲使用的是懸浮式中控台,色彩艷麗的显示屏就像是懸浮在中控之上,中間連通的整條裝飾條非常搶眼,顯得非常時尚而且有活力。

科魯茲在中控上則是使用着蝶翼式中控,全黑色的設計更顯檔次,更為重要的是在中控下方容易接觸的部分使用軟質的皮革材料,手感更佳,雖然設計相似但在檔次上要比科沃茲高很多。

空間表現:科沃茲處於主流水準,科魯茲准中型車表現

雪佛蘭科沃茲是一副典型的緊湊型車身材,軸距2600mm,處於該級別的中等水平,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

滿足我們一般的家用需要。

而基於全球化平台的雪佛蘭科魯茲在空間表現,不僅超越了科沃茲,而且2700mm在同級別中有着極大的優勢,基本達到了中型車的入門水平,後排空間已經達到闊綽的水平,表現出色。

性能表現:科沃茲不溫不火,科魯茲性能強勁

在性能表現上雪佛蘭科沃茲有着一股“居家男人”范,搭載的1.5L電噴發動機最大功率83千瓦,最大扭矩為141牛米,有着5MT手動變速箱或者6AT自動變速箱的選擇。動力輸出平順,不溫不火,最大的亮點的就是其手動擋5.4L的工信部綜合油耗。在底盤表現上也是同樣的感覺,沉穩有加卻缺乏激情,是一輛以舒適為主的家轎。

而雪佛蘭科魯茲由於脫胎於最新的全球化平台,在性能表現尤其突出。動力方面除了最大功率可達84千瓦的1.5L直噴發動機以外,還有着一個動力強勁的1.4T渦輪增壓發動機可供選擇,最大功率可達110千瓦,配合的是7速雙離合變速箱,工信部油耗可以達到5.7L的超低水平,此外1.4T車型還有着瓦特連桿的幫助,在性能上更優秀,在保持着舒適度的同時還有着不低的運動性能,非常適合科魯茲運動型男的特性。

定位:科沃茲更親民,科魯茲更高端

7.99-10.99萬的價格,雪佛蘭科沃茲在價格上明顯更為親民,這也表現了其國民第一輛家轎的定位,是一款面向家庭的入門級緊湊型轎車,總體上性能中規中矩,均衡的特性卻是非常適合家庭使用。

作為一款“全球平台化”的准中型轎車,10.99-16.99萬的價格確定了雪佛蘭科魯茲有着更高的定位,是一款較高端的緊湊型轎車,所以在性能以及空間表現都要比起科沃茲來得更優秀。高品質的特性確定了它的用戶是注重生活品質的一類年輕人。

編輯總結:

無論是雪佛蘭科沃茲還是雪佛蘭科魯茲,兩者都能很好地滿足我們需求,科沃茲各方面表現中規中矩,但是有着更為親民的價格,更為適合已經組建家庭的用戶選擇。而科魯茲則有着更為年輕動感的外觀、更為強勁的性能表現以及准中型車的空間水平,然而在價格上也是小許上升,所以更適合追求生活品質的年輕人。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

M1 MacBook Air / MacBook Pro / Mac Mini 在台開賣,RAM 升級要 6,000_網頁設計公司

1{icon} {views}

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

終於,在「效率」上贏得全面優異好評的 Apple M1 晶片 MacBook Air、MacBook Pro 與 Mac mini 在通過 NCC 之後,已經全面在蘋果線上商店開賣。現在購買的話,基本上都能在 1/5 日以前送達消費者手中。至於升級 RAM 與 SSD 的價格也已經正式公佈… 繼續閱讀 M1 MacBook Air / MacBook Pro / Mac Mini 在台開賣,RAM 升級要 6,000 報導內文。

【 購買 M1 MacBook Air(官網) 】

▲圖片來源:Apple

M1 MacBook Air / MacBook Pro / Mac Mini 在台開賣,RAM 升級要 6,000

採用蘋果自家 M1 晶片,全面轉換為 ARM 架構的新世代 Mac 入門產品線,在今天早上已經正式在官方商店開賣。新世代的 M1 MacBook Air、M1 MacBook Pro 與 M1 Mac mini,其實應該不用多作介紹 — 儘管發表會上蘋果一直持續的「快快快」多少,當時還沒太多人相信。

直到正式上市之後才發現,這一系列的入門蘋果電腦產品,居然效能與功耗表現都真的不錯,而且還沒被 Rosetta 2 轉譯拖慢太多速度(!),緊接著各家選擇支援 Apple Silicon 的速度也超乎想像的快。甚至原生支援 ARM 的應用,在效能上更是直逼高階 Intel Mac 產品 — 這裡就不說 Adobe 補刀的故事了(咦)。

這次的 M1 Mac 主要的差異在,相較於另外兩款 MacBook Air 採用的是無風扇的設計(MBA 基礎機型的 GPU 也少 1 核),在長時間高負載的情況下,理論上效能會遜色於搭載風扇的機型。

【 購買 M1 MacBook Pro(官網) 】

是說,既然幾款 M1 Mac 的價格早已公布,這次主要的新消息大概就是升級 RAM 與 SSD 的售價了 — 兩者基本上都是 6,000 起跳;而從 256GB 升級到 2TB 則是價差 NT$24,000;512GB 升級到 2TB 為 NT$18,000。

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

【 購買 M1 Mac mini(官網) 】

延伸閱讀:

HomePod mini 開箱體驗:一顆就能敲開蘋果智慧家門,兩顆更是不嫌多

支援 M1 Mac 的 Windows 虛擬機應用 Parallels Desktop 16 技術預覽版來了

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

海峽兩岸學者講述家文化_網頁設計公司

1{icon} {views}

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

《回家》 薛仁明 白劍峰著 紅旗出版社

近日,《回家》一書由紅旗出版社出版,作者為台灣作家薛仁明和人民日報高級記者白劍峰。這是海峽兩岸學者首次聯袂出版的“家文化”專著。本書從中華傳統文化的視角解讀了“回家”的內涵和意義。《回家》以家庭為切入點,從飲食男女到四時祭祀,從鄉愁鄉思到祠堂家譜,從居住空間到民俗風情,從家風家教到家國情懷,涵蓋了家庭的方方面面,將中華傳統文化融入日常生活的細節之中,剖析了中國人的文化基因,闡述了中國人的家國情懷。本書分為家居、家祭、家鄉、家庭、家風、家教、家國七章,站在中華幾千年文明的高度,涉及儒釋道及諸子百家,體現了儒家“修身、齊家、治國、平天下”的人生理想。書中有美食的味道,有節氣的韻律,有建築的光影,有祭祀的虔敬,有生死的感悟,有血脈的綿續,有鄉愁的記憶,有夫妻的恩愛,有教子的良方,既是一本中華傳統文化的“濃縮讀本”,也是一本家庭生活的“百科全書”。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

月銷2萬多輛 同級最大氣最豪華的SUV美國佬都說很好?_網頁設計公司

1{icon} {views}

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

並且在換擋邏輯上,所配合的6AT變速箱是非常願意降檔,一旦需要加速就會狠狠給你降檔。所以在日常的駕駛中,這款2。0T 四驅的中型SUV駕駛是非常酣暢淋漓,加速輕快。“操控還是那個別克味,缺乏路感”對於操控,這就是一個扣分項了。

別克昂科威

這是一個類似“屌絲”逆襲的故事,在世界的眼中又甚至在我們國人的眼中,中國汽車設計功力都是非常失敗的。不過對於這款昂科威就不是這樣了,昂科威是由我們上汽和通用共同出資建立的“泛亞”開發研製而成,而且是由我們主力開發而成,在我國主要瞄準的是福特翼虎、大眾途觀這些緊湊型SUV,銷量都是相當的不錯。隨後美國通用察覺到這款國內研發的SUV實力的強悍,將其反引進美國,這是第一次我國汽車反引進美國,從而引起了美國汽車工人聯合會的抗議。

在美國,別克昂科威搭載的是2.5L自然吸氣發動機以及2.0T渦輪增壓發動機,前者是邁銳寶XL的同款發動機,而2.0T發動機是我們原汁原味的“中國發動機”。作為美國媒體先驅的Motortrend在近日也是對2017款的別克昂科威進行了詳細的評測,結果究竟如何,我們不妨拭目以待。

“2.5L發動機在NVH表現遜色,2.0T卻是有着超大的改進”

2.0T發動機給了我們很大的驚喜,由其是NVH表現上,要比起2.5L的要好很多,不過在2500rpm或以上的區間,還是能感受一些躁動。而且這款發動機動力儲備還非常豐富,轉速表可以一直維持較低的轉速區間,優秀的扭矩輸出平台讓我們覺得這就像是開着柴油車。並且在換擋邏輯上,所配合的6AT變速箱是非常願意降檔,一旦需要加速就會狠狠給你降檔。所以在日常的駕駛中,

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

這款2.0T 四驅的中型SUV駕駛是非常酣暢淋漓,加速輕快。

“操控還是那個別克味,缺乏路感”

對於操控,這就是一個扣分項了。我們更願意將其稱作是缺乏轉向回饋,缺乏路感以及手感過於輕巧(美國人更追求操控,和我們中國追求舒適易於操控所不同)。不過實話實話的是這是別克的常態,是多數別克汽車的表現。其次是減震部分的缺點,在初初駕駛的一段路程中,你會對減震表現給着很高的評價,在處於一些小的路面起伏以及坑窪的時候,減震器給人的感覺是非常迅速乾脆,舒適性能獲得很高的分數。但是在遇到一些大的起伏的時候,舒適性為主的減震就會多次起伏去化解這些衝擊,會有着不斷彈跳的感覺,影響了質感。

“厚實的座椅非常舒適,但是內飾設計需要加強”

進入車內,那個大面積的全景天窗給我們帶來了良好的採光,製造了較高的檔次感。在座椅表現上卻是非常的優異,座椅整體支撐性強,相當的厚實讓得它坐起來相當的舒適,美中不足的是駕駛員位置腰部支撐有所欠缺。內飾上使用了真皮以及仿木裝飾,整體檔次較高,做工非常出色,但是設計也有一點缺陷,就是進行了噴漆處理的仿木裝飾,讓人覺得塑料感非常的強。

總的來說,MT給出的評價還是相當的高,尤其這是一輛打美國汽車行業臉的汽車。在美國,別克昂科威可是一輛定位豪華SUV的車型,對標車型是奧迪Q5、謳歌RDX。這也證明了我們國家確實有着較高的研發水平,當然在開發成本上也是比較高。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

容器技術之Dockerfile(一)_網頁設計公司

1{icon} {views}

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

  在前邊的隨筆中我們聊到了docker的基本命令,鏡像,網絡,存儲卷以及基於現有容器製做docker鏡像,相關隨筆可參考https://www.cnblogs.com/qiuhom-1874/category/1766327.html;今天我們來聊一聊docker的另一個製作鏡像的方式dockerfile;

  什麼是dockerfile?所謂dockerfile就是用來描述docker鏡像製作過程的一指令文件;該文件是一個純文本文件,docker Daemon 進程可以從該文件中讀取指令,從而自動生成鏡像;客戶端可以使用docker bulid命令來指定dockerfile 所在目錄,來生成以dockerfile里描述的鏡像構建過程的鏡像;

  首先我們來了解下dockerfile的格式,dockerfile是一個純文本文件,我們可以理解為構建鏡像的源碼;不同於其他編程語言,dockerfile里沒有if else 沒有循環,它裏面僅僅有註釋和構建鏡像的指令;對於dockerfile註釋就是以井號開頭的行為註釋,這個和shell和其他配置文件的語法一樣;除此之外dockerfile里就只有指令了;嚴格的講指令是不區分字符大小寫的,通常我們約定俗成指令都是純大寫;除此之外在dockerfile的第一非註釋行必須是FROM開頭來明確的說明我們在基於那個鏡像為基礎鏡像做鏡像;

  通常情況下dockerfile是放在一個目錄下,該目錄就是dockerfile的工作目錄,我們在製作鏡像所依賴的文件都必須放在該目錄下,而dockerfile的名稱也必須是Dockerfile(首字母大寫,名稱必須是Dockerfile),如果我們依賴的文件是一個目錄下的部分文件,我們也可在dockerfile所在目錄創建一個.dockerignore文件,把我們要忽略的文件名稱寫到裏面即可,該文件支持通配符;

  了解了上面的dockerfile的基本環境結構,接下來我們來說說dockerfile的指令的用法;

  1、FROM:用於指定所創建鏡像的基礎鏡像,如果本地不存在,默認會從dockerhub中下載;該指令是dockerfile里的第一個非註釋行的指令;語法格式 FROM <repository>[:<tag>] 或者FROM <repository>@<digest>  其中repository是指定的base 鏡像的名稱 <tag>是base 鏡像的標籤為可選項,不指定標籤默認表示使用指定鏡像的latest版本;

  2、MAINTAINER:用於指定維護者信息,dockerfile並不限制MAINTAINER指令可出現的位置,通常我們建議將該指令放在FROM之後;語法格式 MAINTAINER <authtor’s detail>, <author’s detail>可是任何文本信息,但約定俗成地使用作者名稱及郵件地址;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"


[root@node1 test]# 

  提示:通常我們都不用MAINTAINER來指定作者信息,該指令幾乎是廢棄狀態,建議使用LEBEL指令來指定;

  3、LABEL:該指令用於指定添加鏡像的元數據信息;語法格式為LABEL <key>=<value> <key>=<value> <key>=<value> …;如果添加的元數據信息值中有空格,我們需要使用引號和反斜線進行命令行解析;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."


[root@node1 test]# 

  提示:LABEL指令可以使用多次,用於添加更多的元數據信息;

  4、COPY:該指令用於從Docker主機複製文件至創建的鏡像文件中;語法格式 COPY <src> … <dest> 或 COPY [“<src>”,… “<dest>”];<src>表示要複製的源文件或目錄,支持使用通配符;<dest>表示目標路徑,即正在創建的image的文件系統路徑;建議為<dest>使用絕對路徑,否則,COPY指定則以WORKDIR為其起始路徑;注意:在路徑中有空白字符時,通常使用第二種格式;

  文件複製準則

  1、<src>必須是Dockerfile所在目錄中的文件,不能是其父目錄中的文件;

  2、如果<src>是目錄,則其內部文件或子目錄會被遞歸複製,但<src>目錄自身不會被複制;

  3、如果指定了多個<src>,或在<src>中使用了通配符,則<dest>必須是一個目錄,且必須以“/”結尾;

  4、如果<dest>事先不存在,它會被自動創建,則包括其父目錄路徑;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

COPY html /var/www/html/

COPY test.html /tmp/
[root@node1 test]# tree
.
├── Dockerfile
├── html
│   ├── test1.html
│   └── test2.html
└── test.html

1 directory, 4 files
[root@node1 test]# 

  測試:我們基於上面的Dockerfile構建鏡像,看看構建好的鏡像是否把對應文件都複製到對應目錄下了?

[root@node1 test]# ls
Dockerfile  html  test.html
[root@node1 test]# pwd
/root/test
[root@node1 test]# docker build . -t myimg:v0.1
Sending build context to Docker daemon  5.632kB
Step 1/6 : FROM busybox:latest
latest: Pulling from library/busybox
d9cbbca60e5f: Pull complete 
Digest: sha256:836945da1f3afe2cfff376d379852bbb82e0237cb2925d53a13f53d6e8a8c48c
Status: Downloaded newer image for busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Running in c311afd3d522
Removing intermediate container c311afd3d522
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Running in 2ffb577afa08
Removing intermediate container 2ffb577afa08
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Running in 489165bad668
Removing intermediate container 489165bad668
 ---> 994f06ff65f8
Step 5/6 : COPY html /var/www/html/
 ---> f2b46094d9a9
Step 6/6 : COPY test.html /tmp/
 ---> c78c7188f804
Successfully built c78c7188f804
Successfully tagged myimg:v0.1
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.1                c78c7188f804        8 seconds ago       1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# 

  提示:可以看到docker在讀dockerfile時會把一條指令啟動一容器來執行,然後每一條指令都會構建成一層鏡像;如果我們本地倉庫中沒有我們指定的基礎鏡像,它默認會從dockerhub倉庫中去把指定鏡像拖到本地;docker build命令是用來基於dockerfile來製作鏡像的命令,其中-t表示指定我們生成的鏡像的標籤信息;

  運行我們剛才製作好的鏡像,看看我們的指定的目錄和文件是否都複製到指定鏡像中的目錄中去了?

[root@node1 test]# docker run --name test --rm -it myimg:v0.1 /bin/sh
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var
/ # ls /var/www/html/
test1.html  test2.html
/ # ls /tmp/
test.html
/ # cat /var/www/html/test1.html 
this is test1 html
/ # cat /var/www/html/test2.html 
this is test2 html
/ # cat /tmp/test.html 
this is test dir html
/ # exit
[root@node1 test]# 

  提示:可以看到我們以剛才製作的鏡像運行成容器,容器對應目錄有我們指定複製的文件;
  5、ADD:該指令類似於COPY指令,ADD支持使用TAR文件和URL路徑;語法格式 ADD <src> … <dest> 或 ADD [“<src>”,… “<dest>”];如果<src>為URL且<dest>不以/結尾,則<src>指定的文件將被下載並直接被創建為<dest>;如果<dest>以/結尾,則URL指定的文件將被直接下載並保存為<dest>/<filename>;如果<src>是一個本地系統上的壓縮格式的tar文件,它將被展開為一個目錄,其行為類似於“tar -x”命令;然而,通過URL獲取到的tar文件將不會自動展開;如果<src>有多個,或其間接或直接使用了通配符,則<dest>必須是一個以/結尾的目錄路徑;如果<dest>不以/結尾,則其被視作一個普通文件,<src>的內容將被直接寫入到<dest>;

  示例:

[root@node1 test]# ls
Dockerfile  html  nginx-1.19.0.tar.gz  test.html
[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

COPY html /var/www/html/

COPY test.html /tmp/

ADD http://nginx.org/download/nginx-1.18.0.tar.gz /usr/src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]# 

  提示:以上Dokcerfile里指定把當前目錄下的nginx-1.19.0.tar.gz 添加到鏡像中的/tmp/下,並且會把nginx-1.19.0.tar.gz展開成一個目錄;而對於

ADD http://nginx.org/download/nginx-1.18.0.tar.gz /usr/src/這條指令它會把指定url的文件下載到/usr/src/,但是不會tar文件展開;

  測試:把上面dockerfile編譯成鏡像,看看對應目錄中的文件是否都展開了?

[root@node1 test]# docker build . -t myimg:v0.2
Sending build context to Docker daemon   1.05MB
Step 1/8 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/8 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/8 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/8 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/8 : COPY html /var/www/html/
 ---> Using cache
 ---> f2b46094d9a9
Step 6/8 : COPY test.html /tmp/
 ---> Using cache
 ---> c78c7188f804
Step 7/8 : ADD http://nginx.org/download/nginx-1.18.0.tar.gz /usr/src/
Downloading   1.04MB/1.04MB
 ---> 23f47a028853
Step 8/8 : ADD nginx-1.19.0.tar.gz /tmp/
 ---> 6ba2693b3084
Successfully built 6ba2693b3084
Successfully tagged myimg:v0.2
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.2                6ba2693b3084        27 seconds ago      8.54MB
myimg               v0.1                c78c7188f804        25 minutes ago      1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.2 /bin/sh
/ # ls /usr/src/
nginx-1.18.0.tar.gz
/ # ls /tmp
nginx-1.19.0  test.html
/ # exit
[root@node1 test]# 

  提示:從上面的信息可以看到,在容器中的/usr/src/目錄下nginx-1.18.0.tar.gz並沒有展開,而在/tmp/下卻把niginx-1.19.0.tar.gz展開為nginx-1.19.0;從build的過程來看,除開後面的ADD過程,其他過程都很快,並且明確告訴我們使用了cache,則意味着在本地倉庫中有的鏡像層,默認是共享的;

  6、WORKDIR:該指令用於設定Dockerfile中所有的RUN、CMD、ENTRYPOINT、COPY和ADD指令的工作目錄;一個Dockerfile中可以多次使用WORKDIR來指定當前WORKDIR指令到下一個WORKDIR指令之間的指令的工作目錄;語法格式WORKDIR <dirpath>;在Dockerfile文件中,WORKDIR指令可出現多次,其路徑也可以為相對路徑,不過,其是相對此前一個WORKDIR指令指定的路徑,另外,WORKDIR也可調用由ENV指定定義的變量;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

WORKDIR /var/www/

COPY html html/

COPY test.html /tmp/

WORKDIR /usr/

ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]# 

  提示:我們在dockerfile中指定了workdir的路徑后,其後的指令就可以以上一個workdir指定的路徑 為基準後面使用相對路徑;

  測試:製作鏡像運行容器,看看是否把對應文件都添加到容器的指定目錄里?

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

WORKDIR /var/www/

COPY html html/

COPY test.html /tmp/

WORKDIR /usr/

ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]# 
[root@node1 test]# docker build . -t myimg:v0.3
Sending build context to Docker daemon   1.05MB
Step 1/10 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/10 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/10 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/10 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/10 : WORKDIR /var/www/
 ---> Running in 623002a4c418
Removing intermediate container 623002a4c418
 ---> 7e6898b36dd5
Step 6/10 : COPY html html/
 ---> 57ff5a48a104
Step 7/10 : COPY test.html /tmp/
 ---> f66a1bf4040a
Step 8/10 : WORKDIR /usr/
 ---> Running in b905ff1b4529
Removing intermediate container b905ff1b4529
 ---> 1fdceb9a6bfd
Step 9/10 : ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/
Downloading   1.04MB/1.04MB
 ---> 92868df29f5b
Step 10/10 : ADD nginx-1.19.0.tar.gz /tmp/
 ---> 68161c3beb90
Successfully built 68161c3beb90
Successfully tagged myimg:v0.3
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.3                68161c3beb90        11 seconds ago      8.54MB
myimg               v0.2                6ba2693b3084        18 minutes ago      8.54MB
myimg               v0.1                c78c7188f804        43 minutes ago      1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.3 /bin/sh
/usr # pwd
/usr
/usr # ls 
sbin  src
/usr # ls src/
nginx-1.18.0.tar.gz
/usr # ls /tmp/
nginx-1.19.0  test.html
/usr # ls /var/www/
html
/usr # exit
[root@node1 test]#

  提示:可以看到我們製作的鏡像啟動為容器后,默認是我們指定的最後一個workdir的路徑;

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

  示例:使用環境變量指定workdi的路徑;

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ENV webhome="/var/www/" src_home="/usr/"


WORKDIR $webhome

COPY html html/

COPY test.html /tmp/

WORKDIR $src_home

ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/

ADD nginx-1.19.0.tar.gz /tmp/
[root@node1 test]#

  提示:我們在原有的Dockerfile中添加了ENV webhome=”/var/www/” src_home=”/usr/” 表示添加兩個環境變量,而這兩個環境的變量的值分別是“/var/www/” 和“/usr” 這樣一來,在後面workdir引用該環境變量時 就會把對應的值給替換過去;dockerfile中變量引用同shell中的變量引用一樣都是使用$符合引用變量;

  測試:利用上面的Dockerfile編譯成鏡像,然後運行成容器,看看我們在dockerfile中定義的環境變量是否能夠被容器所引用?

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.3                68161c3beb90        34 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        53 minutes ago      8.54MB
myimg               v0.1                c78c7188f804        About an hour ago   1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . -t myimg:v0.4
Sending build context to Docker daemon   1.05MB
Step 1/11 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/11 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/11 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/11 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/11 : ENV webhome="/var/www/" src_home="/usr/"
 ---> Running in 82738c50a595
Removing intermediate container 82738c50a595
 ---> 9f089c14778f
Step 6/11 : WORKDIR $webhome
 ---> Running in 3e9d7d4276bf
Removing intermediate container 3e9d7d4276bf
 ---> 94e17268d7ea
Step 7/11 : COPY html html/
 ---> cf3be18998db
Step 8/11 : COPY test.html /tmp/
 ---> 3b81cb058412
Step 9/11 : WORKDIR $src_home
 ---> Running in 70478cb9d405
Removing intermediate container 70478cb9d405
 ---> e0d8ab9331f4
Step 10/11 : ADD http://nginx.org/download/nginx-1.18.0.tar.gz src/
Downloading   1.04MB/1.04MB
 ---> b4e546989783
Step 11/11 : ADD nginx-1.19.0.tar.gz /tmp/
 ---> df3d040b5766
Successfully built df3d040b5766
Successfully tagged myimg:v0.4
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.4                df3d040b5766        4 minutes ago       8.54MB
myimg               v0.3                68161c3beb90        41 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        59 minutes ago      8.54MB
myimg               v0.1                c78c7188f804        About an hour ago   1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.4 /bin/sh
/usr # pwd
/usr
/usr # ls /var/www/
html
/usr # ls /usr/src/
nginx-1.18.0.tar.gz
/usr # 

  提示:可以看到我們指定的ENV環境變量是能夠被WORKDIR說引用

  7、ENV:用於為鏡像定義所需的環境變量,並可被Dockerfile文件中位於其後的其它指令(如ENV、ADD、COPY等)所調用;調用格式為$variable_name或${variable_name};語法格式ENV <key> <value> 或 ENV <key>=<value> …;第一種格式中,<key>之後的所有內容均會被視作其<value>的組成部分,因此,一次只能設置一個變量;第二種格式可用一次設置多個變量,每個變量為一個”<key>=<value>”的鍵值對,如果<value>中包含空格,可以以反斜線(\)進行轉義,也可通過對<value>加引號進行標識;另外,反斜線也可用於續行;定義多個變量時,建議使用第二種方式,以便在同一層中完成所有功能;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ENV web_home="/var/www/html/"

COPY html ${web_home}


[root@node1 test]# 

  提示:上面Dockerfile設置了環境變量web_home=”/var/www/html” ,後面的COPY引用時直接使用${web_home}即可;COPY html ${web_home}表示把html目錄中的文件複製到web_home這個變量所指定的目錄中,即/var/www/html/;

  測試:編譯成鏡像,看看是否把對應html目錄下的文件複製到/var/www/html/目錄下了?

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.4                df3d040b5766        17 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        54 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . -t myimg:v0.5
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ENV web_home="/var/www/html/"
 ---> Running in 4c136d790dd0
Removing intermediate container 4c136d790dd0
 ---> 90e193e4e810
Step 6/6 : COPY html ${web_home}
 ---> e21e9479b0a7
Successfully built e21e9479b0a7
Successfully tagged myimg:v0.5
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.5                e21e9479b0a7        4 seconds ago       1.22MB
myimg               v0.4                df3d040b5766        17 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        54 minutes ago      8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.5 /bin/sh
/ # ls /var/www/html/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到我們打包的鏡像運行成容器后,ENV指定的環境變量目錄里有html目錄下的所有文件;

  8、ARG:該指令用於編譯階段可以使用docker build –build-arg向dockerfile里ARG 指定的變量傳遞值;語法格式ARG <name>[=<default value>];該指令可以在dockerfile中使用多次,也可以給定默認變量一個默認的值,在用戶沒有向該變量傳遞值的情況;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home="/var/www/html/"

COPY html ${web_home}


[root@node1 test]# 

  提示:以上Dockerfile 指定了web_home變量的默認值是“/var/www/html/” 如果在我們build階段沒有使用–build-arg來向web_home傳遞值時,它默認就是“/var/www/html/”,如果我們使用了 –build-agr 指定web_home的值后,後面引用web_home變量的值就是我們用–build-arg傳遞給它的值;

  測試:使用–build-arg向web_home傳遞值

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.5                e21e9479b0a7        14 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        31 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        About an hour ago   8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . --build-arg web_home="/usr/share/www/html/" -t myimg:v0.6
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ARG web_home="/var/www/html/"
 ---> Running in d8697abf9206
Removing intermediate container d8697abf9206
 ---> 6abb65dab341
Step 6/6 : COPY html ${web_home}
 ---> 385cba27c288
Successfully built 385cba27c288
Successfully tagged myimg:v0.6
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.6                385cba27c288        6 seconds ago       1.22MB
myimg               v0.5                e21e9479b0a7        15 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        32 minutes ago      8.54MB
myimg               v0.3                68161c3beb90        About an hour ago   8.54MB
myimg               v0.2                6ba2693b3084        About an hour ago   8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v0.6 /bin/sh
/ # ls /usr/share/www/html/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到我們傳遞進去的路徑下有html目錄下的兩個網頁文件;這說明通過–build-arg 選項可以向Dockerfile里ARG指定指定的變量傳遞值的;

  示例:引用變量給定變量默認值

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home

COPY html ${web_home:-"/data/htdoc/"}


[root@node1 test]# 

  提示:引用變量給定變量默認值的方式同shell中的用法一樣;${web_home:-“/data/htdoc/”} 表示如果web_home這個變量的值未設定或者為空時,就使用默認的值“/data/htdoc/”這個值,如果設置了,那麼設置的是什麼值就是什麼值;

  測試:不使用–build-arg向web_home傳遞值,看看web_home是否會拿到默認值?

[root@node1 test]# docker build . -t myimg:v0.7
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ARG web_home
 ---> Running in 9d98f8e3a1f0
Removing intermediate container 9d98f8e3a1f0
 ---> f164cc3e24ad
Step 6/6 : COPY html ${web_home:-"/data/htdoc/"}
 ---> 4bedea2590b7
Successfully built 4bedea2590b7
Successfully tagged myimg:v0.7
[root@node1 test]# docker run --name test --rm -it myimg:v0.7 /bin/sh
/ # ls /
bin   data  dev   etc   home  proc  root  sys   tmp   usr   var
/ # ls /data/
htdoc
/ # ls /data/htdoc/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到不想web_home傳遞值,默認就是使用我們給設定的默認值

  測試:向web_home傳遞值,看看是否還會使用默認值呢?

[root@node1 test]# docker build . --build-arg web_home=/web/html/ -t myimg:v0.9
Sending build context to Docker daemon   1.05MB
Step 1/6 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/6 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/6 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/6 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/6 : ARG web_home
 ---> Using cache
 ---> f164cc3e24ad
Step 6/6 : COPY html ${web_home:-"/data/htdoc/"}
 ---> 4b6993911e6d
Successfully built 4b6993911e6d
Successfully tagged myimg:v0.9
[root@node1 test]# docker run --name test --rm -it myimg:v0.9 /bin/sh          
/ # ls /
bin   dev   etc   home  proc  root  sys   tmp   usr   var   web
/ # ls /web/
html
/ # ls /web/html/
test1.html  test2.html
/ # exit
[root@node1 test]# 

  提示:可以看到通過–build-arg傳遞了web_home的值為“/web/htm/”后,默認的“/data/htdoc/”的值就不會生效;

  9、VOLUME:用於在image中創建一個掛載點目錄,以掛載Docker host上的卷或其它容器上的卷;語法格式 VOLUME <mountpoint> 或 VOLUME [“<mountpoint>”];如果掛載點目錄路徑下此前的文件存在,docker run命令會在卷掛載完成后將此前的所有文件複製到新掛載的卷中;

  示例:

[root@node1 test]# cat Dockerfile
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home

COPY html ${web_home:-"/data/htdoc/"}

VOLUME ${web_home:-"/data/htdoc/"}


[root@node1 test]# 

  提示:volume是指定鏡像里的掛載點,如果該掛載點裏面原來是有文件存在,在使用docker run 時,用-v指定把宿主機上的某個目錄掛載到該掛載點時,默認會把原來有的文件複製新掛載的卷中;這裏還需要特被說一下,這裏指定卷是在鏡像內部創建一個掛載點,運行成容器還需要我們手動的用-v去指定把那個目錄掛載到該掛載點,如果不指定默認就是docker-managed 類型的卷;

  測試:編譯成鏡像,然後運行成容器,看看我們指定的卷宗的文件會不會被覆蓋掉?是否會有文件存在?

[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v0.9                4b6993911e6d        21 minutes ago      1.22MB
myimg               v0.7                4bedea2590b7        23 minutes ago      1.22MB
myimg               v0.6                385cba27c288        30 minutes ago      1.22MB
myimg               v0.5                e21e9479b0a7        46 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        About an hour ago   8.54MB
myimg               v0.3                68161c3beb90        2 hours ago         8.54MB
myimg               v0.2                6ba2693b3084        2 hours ago         8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker build . -t myimg:v1.0
Sending build context to Docker daemon   1.05MB
Step 1/7 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/7 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/7 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/7 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/7 : ARG web_home
 ---> Using cache
 ---> f164cc3e24ad
Step 6/7 : COPY html ${web_home:-"/data/htdoc/"}
 ---> Using cache
 ---> 4bedea2590b7
Step 7/7 : VOLUME ${web_home:-"/data/htdoc/"}
 ---> Running in 34cad9ca1f79
Removing intermediate container 34cad9ca1f79
 ---> 9554284e4bba
Successfully built 9554284e4bba
Successfully tagged myimg:v1.0
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v1.0                9554284e4bba        2 minutes ago       1.22MB
myimg               v0.9                4b6993911e6d        24 minutes ago      1.22MB
myimg               v0.7                4bedea2590b7        26 minutes ago      1.22MB
myimg               v0.6                385cba27c288        33 minutes ago      1.22MB
myimg               v0.5                e21e9479b0a7        49 minutes ago      1.22MB
myimg               v0.4                df3d040b5766        About an hour ago   8.54MB
myimg               v0.3                68161c3beb90        2 hours ago         8.54MB
myimg               v0.2                6ba2693b3084        2 hours ago         8.54MB
myimg               v0.1                c78c7188f804        2 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v1.0 /bin/sh
/ # ls /
bin   data  dev   etc   home  proc  root  sys   tmp   usr   var
/ # ls /data/htdoc/
test1.html  test2.html
/ # [root@node1 test]# 
[root@node1 test]# docker container inspect test -f {{.Mounts}}
[{volume f3409b021267bd27d58c4b16fb1bc0dae77d4f92f7b5e6255f4ed26a6c27e459 /var/lib/docker/volumes/f3409b021267bd27d58c4b16fb1bc0dae77d4f92f7b5e6255f4ed26a6c27e459/_data /data/htdoc local  true }]
[root@node1 test]# ll /var/lib/docker/volumes/f3409b021267bd27d58c4b16fb1bc0dae77d4f92f7b5e6255f4ed26a6c27e459/_data
total 8
-rw-r--r-- 1 root root 19 May 31 01:51 test1.html
-rw-r--r-- 1 root root 19 May 31 01:51 test2.html
[root@node1 test]# 

  提示:可以看到運行成容器后,默認會把我們指定卷掛載成docker-managed類型的卷;同時我們也看到了對應掛載點上目錄會把原有文件複製到現volume中;

  測試:手動指定宿主機目錄掛載到掛載點,文件是否還會存在呢?

[root@node1 ~]# mkdir /work
[root@node1 ~]# docker run --name test1 --rm -it -v /work:/data/htdoc/ myimg:v1.0 /bin/sh 
/ # ls /data/htdoc/
/ # [root@node1 ~]# ls /work/
[root@node1 ~]# 

  提示:手動指定掛載關係,它就不會把原有目錄下的文件複製到現掛載目錄中了;也就是說,人為手動指定掛載關係,宿主機上的的目錄會覆蓋容器內掛載點下的文件;只有docker自身管理的掛載的卷才會把原目錄下的文件複製到現掛載目錄里;

  10、EXPOSE:用於為容器打開指定要監聽的端口以實現與外部通信(暴露端口);語法格式 EXPOSE <port>[/<protocol>] [<port>[/<protocol>] …]; <protocol>用於指定傳輸層協議,可為tcp或udp二者之一,默認為TCP協議;EXPOSE指令可一次指定多個端口;

  示例:

[root@node1 test]# cat Dockerfile 
FROM busybox:latest

MAINTAINER "qiuhom <qiuhom@linux-1874.com>"

LABEL version="1.0"

LABEL description="this is test file \ that label-values can span multiple lines."

ARG web_home

COPY html ${web_home:-"/data/htdoc/"}

VOLUME ${web_home:-"/data/htdoc/"}

EXPOSE 80/tcp 443/tcp


[root@node1 test]# 

  提示:以上dockerfile中暴露了tcp的80和443端口;在dockerfile中使用EXPOSE暴露端口,在運行成容器時,如果不使用-P來暴露端口,容器里的端口還是暴露不出來;這裏只是build階段明確說明要暴露80和443,而運行成容器我們需要使用-P來把build暴露的端口暴露出來;

  測試:運行時不使用-P暴露端口,看看是否能夠把80和443暴露出來呢?

[root@node1 test]# docker build . -t myimg:v1.1
Sending build context to Docker daemon   1.05MB
Step 1/8 : FROM busybox:latest
 ---> 78096d0a5478
Step 2/8 : MAINTAINER "qiuhom <qiuhom@linux-1874.com>"
 ---> Using cache
 ---> bf9b966a914b
Step 3/8 : LABEL version="1.0"
 ---> Using cache
 ---> 5dd2e4b3f594
Step 4/8 : LABEL description="this is test file \ that label-values can span multiple lines."
 ---> Using cache
 ---> 994f06ff65f8
Step 5/8 : ARG web_home
 ---> Using cache
 ---> f164cc3e24ad
Step 6/8 : COPY html ${web_home:-"/data/htdoc/"}
 ---> Using cache
 ---> 4bedea2590b7
Step 7/8 : VOLUME ${web_home:-"/data/htdoc/"}
 ---> Using cache
 ---> 9554284e4bba
Step 8/8 : EXPOSE 80/tcp 443/tcp
 ---> Running in 8d7d5b4aab94
Removing intermediate container 8d7d5b4aab94
 ---> 79c118ea9eb3
Successfully built 79c118ea9eb3
Successfully tagged myimg:v1.1
[root@node1 test]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myimg               v1.1                79c118ea9eb3        4 seconds ago       1.22MB
myimg               v1.0                9554284e4bba        24 minutes ago      1.22MB
myimg               v0.9                4b6993911e6d        46 minutes ago      1.22MB
myimg               v0.7                4bedea2590b7        48 minutes ago      1.22MB
myimg               v0.6                385cba27c288        55 minutes ago      1.22MB
myimg               v0.5                e21e9479b0a7        About an hour ago   1.22MB
myimg               v0.4                df3d040b5766        About an hour ago   8.54MB
myimg               v0.3                68161c3beb90        2 hours ago         8.54MB
myimg               v0.2                6ba2693b3084        2 hours ago         8.54MB
myimg               v0.1                c78c7188f804        3 hours ago         1.22MB
busybox             latest              78096d0a5478        2 weeks ago         1.22MB
[root@node1 test]# docker run --name test --rm -it myimg:v1.0 /bin/sh                        
/ # [root@node1 test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
ca4cea9a6f58        myimg:v1.0          "/bin/sh"           15 seconds ago      Up 15 seconds                           test
[root@node1 test]# docker container port test
[root@node1 test]# 

  提示:可以看到運行時,我們不使用-P來暴露端口是把容器內部端口暴露不出來的;

  示例:使用-P來暴露dockerfile里定義的端口

[root@node1 test]# docker run --name test --rm -it -P myimg:v1.1 /bin/sh
/ # [root@node1 test]# docker container port test
443/tcp -> 0.0.0.0:32768
80/tcp -> 0.0.0.0:32769
[root@node1 test]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                           NAMES
a78f6cebc0de        myimg:v1.1          "/bin/sh"           19 seconds ago      Up 19 seconds       0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp   test
[root@node1 test]# 

  提示:可以看到使用-P就可以在運行時把build階段定義的暴露端口全部給暴露出來;

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

輕鬆實現記錄與撤銷——C#中的Command模式_網頁設計公司

3{icon} {views}

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

Command模式屬於行為模式,作為大名鼎鼎的23個設計模式之一,Command模式理解起來不如工廠模式,單例模式等那麼簡單直白。究其原因,行為模式着重於使用,如果沒有編程實踐,確實不如創造模式那麼直白。我們先看看UML類圖。

估計很多同學看着圖就暈了,那麼多東西,Command和Concrete Command還好理解,那些Receiver和Invoker又是什麼東西呢?
 
別著急,只要理解了一點,這個模式就很容易理解了,下面划重點,Command模式最主要的特點,是將命令封裝成類,在類中保存命令執行的上下文(即該命令執行的參數,執行的對象),以實現命令執行對象和命令發出對象的解耦
 
這樣一來是不是覺得好理解多了?Command類裏面的Receiver,就是命令具體執行的對象。這裏的Client可以理解為裝配環境,在這裏面代碼實例化Command。Invoker內部保存命令(可以保存多條命令,實現命令記錄查看,撤銷等),客戶端代碼通過Invoker來操作命令。接下來我們看看示例代碼。

 

定義Command接口

首先我們定義一個支持撤銷的Command接口。

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

    interface Command
    {
        void Execute();
        void Undo();
    }

定義Receiver

接下來我們定義Receiver,也就是命令的執行對象,這裏我們定義一個Ball類。

    class Ball
    {
        public int Size { get; set; } = 10;
        public string Name { get; set; } = "My First Ball";
        public void Inspect()
        {
            Console.WriteLine("My Name is {0} and size is {1}", Name, Size);
        }
    }

定義具體命令

這裏定義兩個命令,一個修改名字,一個修改大小。

    class ChangeNameCommand : Command
    {
        private Ball _Ball;
        private string _OldName;
        public string NameYouWant { get; set; }
        public ChangeNameCommand(Ball ball)
        {
            _Ball = ball;
        }

        public void Execute()
        {
            _OldName = _Ball.Name;
            _Ball.Name = NameYouWant;
        }

        public void Undo()
        {
            _Ball.Name = _OldName;
        }
    }
    
	class ChangeSizeCommand : Command
	{
	//代碼大同小異,略
	}

定義Invoker

接下來是Invoker,,也就是存儲命令,並最終會被用戶代碼調用的類,這裏我們叫它CommandManager。

    class CommandManager
    {
        private Stack<Command> commands = new Stack<Command>();

        public void RunCommand(Command command)
        {
            command.Execute();
            commands.Push(command);
        }

        public void Undo()
        {
            if (commands.Count > 0)
            {
                var command = commands.Pop();
                command.Undo();
            }
        }
        
		public void ShowCommands()
        {
            var temp = commands.Reverse();
            foreach(var command in temp)
            {
                //display command
            }
        }
    }

使用命令

現在我們看看客戶端代碼是怎麼使用他們的,定義Ball,定義命令,通過CommandManager去調用,這樣可以方便查看命令記錄,撤銷命令,等。

        static void Main(string[] args)
        {
            Ball ball = new Ball();
            ball.Inspect();

            ChangeNameCommand changeName = new ChangeNameCommand(ball) { NameYouWant = "Changed" };
            ChangeSizeCommand changeSize = new ChangeSizeCommand(ball) { SizeYouWant = 20 };

            CommandManager manager = new CommandManager();
            manager.RunCommand(changeName);
            manager.RunCommand(changeSize);
            ball.Inspect();

			manager.ShowCommands();
            
            manager.Undo();
            ball.Inspect();

            manager.Undo();
            ball.Inspect();            
        }

就醬,我們已經實現了命令模式,並且還支持命令的記錄與撤銷,希望能對大家有點幫助。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

青銅食器 鐘鳴鼎食_網頁設計公司_網頁設計公司

3{icon} {views}

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

中國古代青銅食器起源甚早,源遠流長,經夏商周三代而臻於隆盛。河南偃師二里頭遺址,就曾出土一件距今3500多年的平底圓鼎。商代之後,青銅食器逐漸作為主角登上歷史舞台。現藏於中國國家博物館的杜嶺方鼎,就是目前所見商代前期形體最大的青銅鼎。商代後期也就是殷墟時期,青銅食器開始以特定的組合方式出現,不但規模數量大幅度提升,而且面貌各異,精品迭出。尤其是大名鼎鼎的後母戊鼎(圖③),高133厘米,口長110厘米,口寬79厘米,重達832.84公斤,造型雄偉,氣勢恢宏,1939年一經發現就備受矚目,如今已成為中國國家博物館的代表性珍藏之一。

  青銅食器按其功能可以細分為烹煮器、盛食器、挹取器、切肉器等,其中烹煮盛食器種類數量最多,像鼎、簋(guǐ)、鬲(lì)、豆等都是後人耳熟能詳的門類。

  烹煮器:鼎、鬲、甗

  烹煮器主要有鼎、鬲、甗(yǎn)。

  鼎是殷周青銅器中數量最多、地位最重要的器類,主要用來烹煮肉食。商周墓葬出土的銅鼎內往往存有牛、羊、豬、魚、雞等各種動物遺骨,考古資料也證實了鼎的確切用途。

  鬲的功能和鼎相似,也是烹煮肉食的(圖①:西周戜(dié)伯鬲)。這點由東週隨葬陶鬲中發現有豚骨可推知。

  甗的上半部分為甑(zèng),下半部分為鬲(也有作鼎形的),中間有箄(bǐ),箄上有孔,甑置食物,鬲盛水,下舉火煮水,以蒸汽加熱食物,作用同於現在的蒸鍋。著名的殷墟婦好墓出土的三聯甗(圖⑥),由三個甑和一個長方形案狀的鬲組成,案上有三個圈形孔灶,用來承置甑體,不僅放置穩當,而且一次能加溫蒸好三份飯,構思非常奇巧。

  盛食器:簋、盨、簠、敦、豆

  盛食器則主要包括簋、盨(xǔ)(圖⑦:西周魯司徒伯吳盨)、簠(fǔ)(圖④:春秋捲曲夔紋簠)、敦(duì)、豆,主要用於盛放黍稷稻粱等主食。豆還可以盛放肉醬、肉汁、醬菜等食品,相當於今天的菜盤(圖②:戰國嵌紅銅獸紋豆)。

 挹取器匕、切肉器俎

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

  挹取器指的是匕,多放置於鼎、鬲、甗等器中,主要用來取肉食、飯食。切肉器指的是俎,是切肉用的几案,俎面上多有鏤孔,便於在切肉時擠壓出的肉汁滲流。(圖⑤:春秋王子臣俎)從功能上看,這些食器之間的關係十分密切,比如鼎、俎、匕就是一套完整處理肉食的裝備,用匕將肉從鼎中取出,放置在俎上切分,用於祭祀和宴饗。

  西周以降,週人重食,鼎簋等食器進而升級成為青銅禮器的核心,鼎為奇數、簋為偶數,形成“列鼎”的器用制度,即所謂“禮祭,天子九鼎,諸侯七,卿大夫五,元士三也”(《公羊傳》桓公二年何休注),某些情況下盨、簠也可以代替簋的位置。這種青銅食器禮器化的場景,還被頻頻載入詩歌。《詩經·週頌·絲衣》雲“鼐(nài)鼎及鼒(zī),兕(sì,古代犀牛一類的獸名)觥(gōng)其觩(qiú)”,描繪的正是周王祭祀行禮時的盛況,鼐指大鼎,鼒為小鼎,“鼐鼎及鼒”的意思就是尺寸大小有等差的一套鼎。考古發現也證實了這一描述。山西曲沃北趙晉侯墓地八號墓出土有五件晉侯蘇鼎,它們造型、紋樣、銘文全部相同,僅大小尺寸呈遞減陳設,這組晉侯蘇列鼎顯然是《絲衣》這首古詩生動的註腳。

  由此看來,古代中國青銅食器不僅單純作為實用器,而且被賦予了特殊的使命,彰顯的是尊卑貴賤的社會地位,是等級身份和行為規範的標誌,由此形成獨特的禮器體系,正所謂“藏禮於器”。

  例如1978年陝西扶風齊村出土的簋,體量巨大,通高59厘米,口徑43厘米,腹深23厘米,重達60公斤,是存世商周青銅簋中最大的一件,而它的主人正是赫赫有名的周厲王。《詩經·小雅·伐木》雲“於(wū)粲灑埽,陳饋八簋”,說的是天子九鼎八簋,通過這一件器物,我們就可以遙想西周天子氣像是何等的恢弘磅礴。西周青銅食器高度發達,還出現了很多新的器型,如簠、盨等。現藏於中國國家博物館的內史盨,便是年代最早的青銅盨之一。值得一提的是,中國國家博物館館藏名器西周大盂鼎,鼎內鑄有銘文291字,其中一段銘文記載的是商人因縱酒誤國,以致亡國的史實,使我們不由聯想到商紂王“以酒為池”的惡跡,這也是目前發現的唯一有關商人縱酒亡國的實物證據。

  東週時期,列國諸侯紛爭不休,青銅文化呈現出鮮明的地域差異,青銅食器也不例外,顯得爭奇鬥豔。

  1978年河南淅川下寺二號墓出土的七件王子午鼎是一套列鼎,器主是楚莊王之子王子午,其中最大的一件通高67.4厘米、口徑66厘米、重110.4公斤,出土時還附有一銅匕,是挹取鼎中之肉的工具。這種平底束腰形制的鼎,是東週時期楚文化的代表,現藏於中國國家博物館。

  長江下游乃至廣東、廣西等南方地區,則流行一種被稱作“越式鼎”的三足細瘦外撇的銅鼎,極具地方特色。至於河北、北京一帶,則常見一種世稱“燕式豆”的銅豆,同樣別具一格。由此可見,東週時期銅豆的地位上升,常與鼎作為固定組合出現。

  歷經數千年的滄桑,那些觥籌交錯的場面早已湮沒於歷史深處,但留存至今的一件件青銅食器足以讓我們浮想聯翩,去回味那個鐘鳴鼎食的時代。毋庸置疑,這些承載著中華文明基因的青銅食器,早已脫離了其本身的實用意義,演變為國家政權、社稷秩序的象徵,進而又演變為中華文化的象徵性符號,並將一代一代傳承下去。

  (作者為中國國家博物館館長,本報記者王珏整理。圖片由國家博物館提供)

  版式設計:沈亦伶

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境