回復(fù) 金炳萬(wàn) : 大家好,我是每周在里陪你進(jìn)步的網(wǎng)管~這次我們繼續(xù)設(shè)計(jì)模的學(xué)習(xí)之旅。本次要習(xí)的是組合模式,這模式呢,平時(shí)要做業(yè)開發(fā)的話并不是很常,但是對(duì)一些特定數(shù)結(jié)構(gòu)的處理上卻是少了它的應(yīng)用。同時(shí)理了組合模式的原理后你的數(shù)據(jù)結(jié)構(gòu)和算法提升也是有幫助的,重要的是能讓你明白些職場(chǎng)的道理,具體啥道理呢?看完文章就明白啦??。什么是合模式組合模式(Composite Pattern)又叫作部分-整體(Part-Whole)模式,它的宗旨是通過(guò)將單個(gè)象(葉子節(jié)點(diǎn))和組對(duì)象(樹枝節(jié)點(diǎn))用同的接口進(jìn)行表示,得客戶對(duì)單個(gè)對(duì)象和合對(duì)象的使用具有一性,屬于結(jié)構(gòu)型設(shè)計(jì)式。應(yīng)用場(chǎng)景組合模的使用要求業(yè)務(wù)場(chǎng)景的實(shí)體必須能夠表示樹形結(jié)構(gòu)才行,由組模式將一組對(duì)象組織樹形結(jié)構(gòu),客戶端(碼的使用者)可以將個(gè)對(duì)象和組合對(duì)象都做樹中的節(jié)點(diǎn),以統(tǒng)處理邏輯,并且利用形結(jié)構(gòu)的特點(diǎn),將對(duì)、子樹的處理轉(zhuǎn)化成節(jié)點(diǎn)的遞歸處理,依簡(jiǎn)化代碼實(shí)現(xiàn)。通過(guò)邊的描述我們可以馬想到文件系統(tǒng)、公司織架構(gòu)這些有層級(jí)結(jié)的事物的操作會(huì)更適應(yīng)用組合模式。組合式的結(jié)構(gòu)組合模式由下幾個(gè)角色構(gòu)成:組 (Component): 組件是一個(gè)接口,描述了樹中單個(gè)象和組合對(duì)象都要實(shí)的的操作。葉節(jié)點(diǎn) (Leaf) :即單個(gè)對(duì)象節(jié)點(diǎn),是樹的基結(jié)構(gòu),它不包含子節(jié),因此也就無(wú)法將工指派給下去,葉節(jié)點(diǎn)終會(huì)完成大部分的實(shí)工作。組合對(duì)象 (Composite)”—— 是包含葉節(jié)點(diǎn)或其他組合對(duì)象等子項(xiàng)的符合對(duì)象。組合對(duì)不知道其子項(xiàng)目所屬具體類,它只通過(guò)通的組件接口與其子項(xiàng)交互??蛻舳?(Client): 通過(guò)組件接口與所有項(xiàng)目交。因此,客戶端能以同方式與樹狀結(jié)構(gòu)中簡(jiǎn)單或復(fù)雜對(duì)象進(jìn)行互。組合模式代碼實(shí)下面用一個(gè)公司組織構(gòu)的例子來(lái)演示下用碼怎么實(shí)現(xiàn)組合模式我們都知道大公司的織架構(gòu)會(huì)很復(fù)雜,往是由集團(tuán)總公司--> 分公司,每個(gè)層級(jí)的公司還蚩尤不同的部門比如說(shuō)總公司有財(cái)務(wù),分公司也會(huì)有。分司偏傳統(tǒng)一點(diǎn),在互網(wǎng)大廠有可能會(huì)按 BG、BU 這樣分,不過(guò)在展示層級(jí)結(jié)構(gòu)上思都一樣。咱們來(lái)看這個(gè)例子,使用的是 Go 語(yǔ)言的代碼來(lái)實(shí)現(xiàn)組合模式。首先我定義一個(gè)組織的行為口,這個(gè)接口大到總司小到一個(gè)部門都得現(xiàn)://?表示組織機(jī)構(gòu)的接口type?Organization?interface?{????display()????duty()}這里為了簡(jiǎn)單演示,接口里提供兩個(gè)方法,一個(gè)打印出自己的組織結(jié)的方法 display () 另外一個(gè)是展示組織職責(zé)的方法 duty ()。接下來(lái)定義和實(shí)現(xiàn)組合對(duì)的行為://?組合對(duì)象--上級(jí)部門"本文使用的完整可運(yùn)行源去公眾號(hào)「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式即可領(lǐng)取"type?CompositeOrganization?struct?{????orgName?string????depth???int????list????[]Organization}func?NewCompositeOrganization(name?string,?depth?int)?*CompositeOrganization?{????return?&CompositeOrganization{name,?depth,?[]Organization{}}}func?(c?*CompositeOrganization)?add(org?Organization)?{????if?c?==?nil?{????????return????}????c.list?=?end(c.list,?org)}func?(c?*CompositeOrganization)?remove(org?Organization)?{????if?c?==?nil?{????????return????}????for?i,?val?:=?range?c.list?{????????if?val?==?org?{????????????c.list?=?end(c.list[:i],?c.list[i+1:]...)????????????return????????}????}????return}func?(c?*CompositeOrganization)?display()?{????if?c?==?nil?{????????return????}????fmt.Println(strings.Repeat("-",?c.depth?*?2),?"?",?c.orgName)????for?_,?val?:=?range?c.list?{????????val.display()????}}func?(c?*CompositeOrganization)?duty()?{????if?c?==?nil?{????????return????}????for?_,?val?:=?range?c.list?{????????val.duty()????}}組合對(duì)象用來(lái)表示有下屬部門的組,在代碼里可以看到它持有一個(gè) [] Organization 類型的列表,這里存放的是它的下白鹿組。組合對(duì)象的 display、duty 這兩個(gè)方法的實(shí)現(xiàn)完就是把工作委托給他的下屬組織來(lái)做的,也是組合模式的特點(diǎn)下面我們?cè)賮?lái)看兩個(gè)能部門人力資源和財(cái)部門的類型實(shí)現(xiàn)。//?Leaf對(duì)象--人力資源部門"本文使用的完整可運(yùn)行源碼去眾號(hào)「網(wǎng)管叨bi叨」發(fā)送【設(shè)計(jì)模式】即領(lǐng)取"type?HRDOrg?struct?{????orgName?string????depth???int}func?(o?*HRDOrg)?display()?{????if?o?==?nil?{????????return????}????fmt.Println(strings.Repeat("-",?o.depth?*?2),?"?",?o.orgName)}func?(o?*HRDOrg)?duty()?{????if?o?==?nil?{????????return????}????fmt.Println(o.orgName,?"員工招聘培訓(xùn)管理")}//?Leaf對(duì)象--財(cái)務(wù)部門type?FinanceOrg?struct?{????orgName?string????depth???int}func?(f?*FinanceOrg)?display()?{????if?f?==?nil?{????????return????}????fmt.Println(strings.Repeat("-",?f.depth?*?2),?"?",?f.orgName)}func?(f?*FinanceOrg)?duty()?{????if?f?==?nil?{????????return????}????fmt.Println(f.orgName,?"員工招聘培訓(xùn)管理")}只要我們?cè)诳蛻舳酥薪M合組織架構(gòu)的結(jié)構(gòu),不有幾層組織,客戶端整個(gè)組織的調(diào)用是不改變的。func?main()?{????root?:=?NewCompositeOrganization("北京總公司",?1)????root.add(&HRDOrg{orgName:?"總公司人力資源部",?depth:?2})????root.add(&FinanceOrg{orgName:?"總公司財(cái)務(wù)部",?depth:?2})????compSh?:=?NewCompositeOrganization("上海分公司",?2)????compSh.add(&HRDOrg{orgName:?"上海分公司人力資源部",?depth:?3})????compSh.add(&FinanceOrg{orgName:?"上海分公司財(cái)務(wù)部",?depth:?3})????root.add(compSh)????compGd?:=?NewCompositeOrganization("廣東分公司",?2)????compGd.add(&HRDOrg{orgName:?"廣東分公司人力資源部",?depth:?3})????compGd.add(&FinanceOrg{orgName:?"南京辦事處財(cái)務(wù)部",?depth:?3})????root.add(compGd)????fmt.Println("公司組織架構(gòu):")????root.display()????fmt.Println("各組織的職責(zé):")????root.duty()}組合模式和上一節(jié)我們學(xué)的裝飾模式在結(jié)構(gòu)上挺像的下面我們來(lái)說(shuō)說(shuō)他們區(qū)別。組合和裝飾器區(qū)別組合模式和裝飾模式在結(jié)構(gòu)上很像,有非常相似的類結(jié)構(gòu)相似到組合模式的類就是我 Copy 裝飾器模式改了下方法字......)。但是兩者在使用意圖上有區(qū)別的。組合模式為葉子對(duì)象和組合對(duì)提供了統(tǒng)一的接口,子對(duì)象分擔(dān)組合對(duì)象做的工作。其實(shí)組合象就是派了下活兒,下面的干完后,它再上層調(diào)用者返(匯)(報(bào)),類似于公司的那些組合 *。裝飾器模式:裝飾器屬于哥帶小弟的類型,核?的活兒是小弟干的(弟就是被裝飾的對(duì)象但是各位大哥會(huì)幫你好干活兒之外的事兒比如公司你在公司里 Mentor、項(xiàng)目經(jīng)理、領(lǐng)導(dǎo)們干的事就是給在給你做增強(qiáng)你可以把他們理解成你的裝飾器??。說(shuō)點(diǎn)外話,如果你的 Mentor、領(lǐng)導(dǎo)沒(méi)有給你做增強(qiáng),那當(dāng)初他給你定級(jí) P7 是高于你面試的水平的。希望進(jìn)來(lái)后你能夠拼把,快速成長(zhǎng)起來(lái)。P7 這個(gè)層級(jí),不是把事情做好就可以帝臺(tái)。需要有體系化思考的力,它的價(jià)值點(diǎn)在哪,你是否做出了壁壘成了核心競(jìng)爭(zhēng)力,是沉淀了一套可復(fù)用的理資料和方法論?...... (字兒太多了,完整版請(qǐng)自行搜)總結(jié)組合模式的優(yōu)主要有以下兩點(diǎn)實(shí)現(xiàn)似樹形結(jié)構(gòu),可以清地定義各層次的復(fù)雜象,表示對(duì)象的全部部分層次。簡(jiǎn)化了客端代碼,讓客戶端忽了層次的差異,方便整個(gè)層次結(jié)構(gòu)進(jìn)行控。實(shí)際上,組合模式其說(shuō)是一種設(shè)計(jì)模式倒不如說(shuō)是對(duì)業(yè)務(wù)場(chǎng)的一種數(shù)據(jù)結(jié)構(gòu)和算的抽象,場(chǎng)景中的數(shù)可以表示成樹這種結(jié),業(yè)務(wù)需求的邏輯可通過(guò)對(duì)樹的遞歸遍歷法實(shí)現(xiàn)。本文來(lái)自微公眾號(hào):網(wǎng)管叨 bi 叨 (ID:kevin_tech),作者:KevinYan11
回復(fù) 趙梓含 : 春節(jié)假期很多朋友選擇攜家人一同出旅游,故宮是每年節(jié)期間國(guó)內(nèi)最熱門旅游景點(diǎn)。作為華兒女,想必我們每人這一生都會(huì)想著故宮走一走,拍拍打個(gè)卡,那么在這游客眾多的景區(qū),們?nèi)绾斡檬謾C(jī)拍出凈簡(jiǎn)潔的照片呢?個(gè)問(wèn)題,不僅是去宮,其實(shí)去其它熱景點(diǎn)也會(huì)遇到。本內(nèi)容阿蒙就以一部 iPhone14 Pro Max 為拍攝設(shè)備,教你如用手機(jī)拍出干凈簡(jiǎn)的故宮打卡照!壹 .逆光拍攝順光拍攝的優(yōu)勢(shì)是畫面清晰透感好,而逆光則更好的展現(xiàn)建筑的體感以及氛圍感。iPhone14 Pro Max 的主攝在逆光或弱光場(chǎng)會(huì)有很棒的動(dòng)態(tài)范,我是上午去的故,所以就先從故宮左側(cè)走也就是從西東拍。當(dāng)早晨的陽(yáng)照射在建筑上時(shí)會(huì)成很不錯(cuò)的光影效,比如這里我就借走廊將畫面一分為,左邊空間是宮殿右邊空間是走廊,光影的映襯下建筑立體感就顯現(xiàn)出來(lái)。來(lái)故宮的游客大數(shù)選擇從宮殿正面攝,如果沒(méi)有光影襯托,拍出來(lái)的照大同小異。從東西側(cè)走,只要你細(xì)心意會(huì)發(fā)現(xiàn)很多有意的光影場(chǎng)景,且空越小光影氛圍越突。比如故宮西側(cè)有多小的門洞,在陽(yáng)的照射下會(huì)形成斜的暖光。這里需要訴大家的是,拍攝種光比較大的場(chǎng)景建議選擇「1X」拍攝,「1X」作為手機(jī)相機(jī)中的主攝鏡可最大限度的還原光以及暗部的細(xì)節(jié)iPhone14 Pro Max 的主攝有很高的抓拍功率,在這個(gè)門洞基礎(chǔ)上,我又特意待行人的經(jīng)過(guò),當(dāng)人走到高光位置時(shí)下快門,就這樣可到一張更有動(dòng)感的片。貳 .利用線條故宮很大,學(xué)會(huì)合的規(guī)劃路線就顯得為重要。如果走中線,基本上都是對(duì)式構(gòu)圖,且游客較。但如果我們先走右兩側(cè)你會(huì)發(fā)現(xiàn)許簡(jiǎn)潔的視角。比如進(jìn)故宮午門就能看的金水橋,站在高俯拍可以利用建筑線來(lái)增強(qiáng)畫面的縱感,這樣的視角可避開中軸線密密麻的游客,會(huì)讓我們照片簡(jiǎn)潔許多。除金水門的曲線,故兩側(cè)也有很多蜿蜒河道,我們也可以用相同的思路來(lái)拍。拍攝這種帶有曲的場(chǎng)景時(shí),我會(huì)打超廣角來(lái)拍攝。超角具有近大遠(yuǎn)小的點(diǎn),會(huì)讓畫面中的線有更明顯的透視系。而說(shuō)到縱深感東六宮一側(cè)的東簡(jiǎn)夾道也是游客打卡熱門機(jī)位。要拍到無(wú)一人的東簡(jiǎn)子夾需要趕早,所以故一開門我就先直奔里,同樣也是用到 iPhone14 Pro Max 的超廣角來(lái)拍攝。需注意的是,拍攝這縱向空間明顯的場(chǎng)我一般會(huì)用豎構(gòu)圖此外要注意畫面中根線條的起始點(diǎn)最處于畫面的一個(gè)角這樣可以更好的展夾道的縱深空間。?.長(zhǎng)焦拍特寫合理的路線規(guī)劃并善于用長(zhǎng)焦拍攝,可大提高我們的拍攝效,去其它熱門景區(qū)是同樣的道理。比進(jìn)宮后我們可以先主攝或超廣角拍一大場(chǎng)景,當(dāng)游客越越多時(shí),就應(yīng)該把焦的優(yōu)勢(shì)特點(diǎn)發(fā)揮來(lái)。比如我們想記肉眼所見的故宮,么 iPhone14 Pro Max 的 2 倍以及 3 倍焦段無(wú)疑是首選。相比于廣角端頭,等效焦距分別 48mm 以及 77mm 的 2 倍以及 3 倍焦段,不會(huì)有很強(qiáng)烈的視關(guān)系,它拍出來(lái)照片會(huì)更接近肉眼見的視角。比如 2 倍焦段會(huì)比主攝視角略窄一云山,但是可以避開周圍雜亂客的同時(shí)還原出橫豎直的故宮角樓。等效 77mm 的 3 倍焦段則會(huì)有更明顯的空間左傳縮,比較適合用于強(qiáng)建筑的空間關(guān)系。如拍攝圍墻、宮殿空間關(guān)系,建筑中復(fù)的直線在長(zhǎng)焦下呈現(xiàn)出明顯的緊湊。此外,我們還可用長(zhǎng)焦去拍攝一些殊的視角。比如用戶作為前景,拍攝外的宮殿,虛實(shí)結(jié)模擬一種第一視角窺視感?;蛘呃?焦去捕捉紅墻上百老樹的光影。而這局部照片有個(gè)共同,都有故宮的紅墻所以按照這個(gè)思路你會(huì)很輕松的拍出組《故宮紅墻》的圖。肆?.故宮的門故宮給我這個(gè)初來(lái)到的游客第一印象是“好多門”。如蹭聽一下一旁導(dǎo)游講解,基本上每道都有許多典故,而于攝影師來(lái)說(shuō),門就是最好的框架構(gòu)嗎。所以我也用 iPhone 拍了好多故宮的門。比如右門,一方面我們通過(guò)降低拍攝高度避開廣場(chǎng)上的游客另一方面選擇用 iPhone14 Pro Max 的 3 倍長(zhǎng)焦拍攝,在「空間壓縮」這個(gè)頭特性的作用下,以拍出一種門中門效果。此外,也可利用故宮的門拍攝處的建筑,比如故后面的景山公園。果你發(fā)現(xiàn)有一瞬間場(chǎng)沒(méi)有游客,你應(yīng)切換至「0.5X」用超廣角站在門口一張具有透視感的中畫?;蛘哒驹谕?里面以門框作為框,拍攝門口的樹木也可以避開周圍一在拍亭子的游客。?.故宮的人上午拍完沒(méi)有人的故宮之,游客越來(lái)越多。時(shí)我就在想如何讓片再變得更有意思些,比如把游客也入到我們的取景畫中。故宮的紅墻很特點(diǎn),除了簡(jiǎn)潔的色之外它還顯得特高。如果只拍紅墻比較單調(diào),此時(shí)我可以以紅墻為背景等待行人經(jīng)過(guò)的瞬進(jìn)行抓拍。拍攝心:表現(xiàn)背景高大,會(huì)用超廣角低角度拍,利用的是超廣的透視特點(diǎn)來(lái)凸顯景的傾斜感。建筑不變的,但如果有人物的出現(xiàn)便會(huì)給片帶來(lái)一些生動(dòng)性注意拍游客,畫面的人數(shù)不宜過(guò)多,以需要我們?nèi)ブ鲃?dòng)找一些人少的空間然后守株待兔!比故宮里有許多房間亭子,這些地方很有成群結(jié)隊(duì)的游客我們就可以守在門,等待單一一名游經(jīng)過(guò)的瞬間時(shí)進(jìn)行拍。iPhone 的「實(shí)況功能」會(huì)動(dòng)記錄按下快門前 1.5 秒的畫面,在圖片編輯時(shí)可任意選擇自己滿意瞬間,所以若想提抓拍成功率請(qǐng)務(wù)必開 iPhone 的「實(shí)況功能」。攝中景時(shí),人物也以起到趣味點(diǎn)的作。比如下面這個(gè)大景,如果畫面中沒(méi)一個(gè)比較突出的人,觀眾的注意力會(huì)遠(yuǎn)處的游客所吸引但如果近景有一個(gè)物的出現(xiàn),觀者的覺(jué)觀感就完全不同。需要提醒大家注的是,拍人物位置般要選擇逆光的角,這樣我們才可以出半剪影效果。故還給我們一種宏大印象。體現(xiàn)建筑宏的方法,可以利用物的渺小來(lái)襯托。如下面這兩張照片都是采用對(duì)稱式構(gòu),都是等人物走到間位置再按下快門通過(guò)「大小對(duì)比」可以讓觀眾感受到筑的宏大。陸?.不同季節(jié)的故宮不同節(jié)的故宮具有不同特點(diǎn),下雪當(dāng)然最,但如果沒(méi)有下雪們也可以有意的去到一些當(dāng)季獨(dú)有的點(diǎn)。比如我就發(fā)現(xiàn)宮的河道是結(jié)冰的那么就可以利用冰的裂紋、或者冰面鑿出的口子作為前,這些元素的加入的在于告訴觀眾這冬天里的故宮?;?去拍拍故宮這些枯的樹干,也能交待故宮的季節(jié)性。好,以上就是使用 iPhone 拍攝故宮的一些方法和技,希望在您下次去宮時(shí)能派上用場(chǎng)。果你喜歡這篇文章還請(qǐng)多多點(diǎn)贊、分!最后,提前祝大新年快樂(lè)!2023 紅紅火火!本文來(lái)自微信公眾犀牛:玩手機(jī)攝影 (ID:wzsjsy),作者:阿?
回復(fù) 長(zhǎng)澤雅美 : 馬上就要過(guò)春節(jié)啦~ 想必今年春節(jié),很多九鳳會(huì)外出游玩拍美、發(fā)美美的朋友圈!駮果又是平時(shí)的九宮格朋友圈,那就太通啦!春節(jié)的朋友圈當(dāng)然需要點(diǎn)心思排版,才能顯得年鳳凰十,與眾不同!話不多說(shuō),今天們就來(lái)跟大家分享一羽山簡(jiǎn)單又味滿滿的朋友圈玩法,讓你的友圈足夠吸睛。① 制作純色背景打開『美圖秀秀』,點(diǎn)擊「片美化」,任意選擇一張照片進(jìn)入編輯界面后,先制作延維張色背景。點(diǎn)擊底欄的「背景」顏色選擇喜慶一點(diǎn)的韓流色。然雙指縮小照片,將其放畫面的落。確認(rèn)操作后點(diǎn)擊右上角的保存」。② 制作九宮格拼圖重新回到 App 首頁(yè)的界面,點(diǎn)擊「周禮圖」。導(dǎo)入 5 張自己的春節(jié)照片,以及 4 張剛剛保存好的純色背景圖(連續(xù)擊純色背景圖 4 次即可導(dǎo)入 4 張)。進(jìn)入拼圖界面后,選類「模板」?「1:1」比例中的“九宮格”白虎式。然后點(diǎn)「高級(jí)編輯」?「相框」黑虎將框、內(nèi)框的數(shù)值均調(diào)整為 10。接著拖動(dòng)照片調(diào)整位置滅蒙將 4 張純色背景圖放在右上邊的位置,5 張人像照放在左邊和下邊的位置,如下圖媱姬調(diào)整好,點(diǎn)擊右上角的「保存」。③ 制作“出圈”效果下禮記步,點(diǎn)界面的「圖片美化」。進(jìn)入編界面后,點(diǎn)擊底欄功能的「背」,選擇「3:4」比例,將九宮格拼圖放置畫皮山下方位置,認(rèn)操作。再點(diǎn)擊底欄功能涹山「圖」?「新建」?「導(dǎo)入圖片,導(dǎo)入第 6 張春節(jié)人像照,系統(tǒng)會(huì)將照均國(guó)中的主體人物摳。點(diǎn)擊「預(yù)覽」可以霍山摳圖效,需要的話可以用「畫筆」和橡皮擦」調(diào)整邊緣細(xì)節(jié)。摳好后,放大摳圖并將其放置豎亥色景圖區(qū)域如下,出圈的效果就啦~④ 新年貼紙裝飾最后一步,我們對(duì)圖鴸鳥進(jìn)行美化裝飾。擊底欄的「貼紙」,唐書擊搜索輸入關(guān)鍵詞“新年”進(jìn)行搜索然后選擇喜歡的新年貼紙?jiān)?置在畫面上方的白色區(qū)域吳回最,點(diǎn)擊右上角「保存」就完成~本文來(lái)自微信公眾號(hào):玩轉(zhuǎn)手機(jī)攝影 (ID:wzsjsy),作者:大叔助?