2018-02-05 對(duì)C#設(shè)計(jì)模式的具體理解格侯、Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)鼻听、AugularJS-特性樟结、Django中提示TemplateDoesNotExist解決、設(shè)計(jì)模式

第一組:陳輝 對(duì)C#設(shè)計(jì)模式的具體理解

22.狀態(tài)者模式

在以下情況下可以考慮使用狀態(tài)者模式精算。

? 當(dāng)一個(gè)對(duì)象狀態(tài)轉(zhuǎn)換的條件表達(dá)式過(guò)于復(fù)雜時(shí)可以使用狀態(tài)者模式瓢宦。把狀態(tài)的判斷邏輯轉(zhuǎn)移到表示不同狀態(tài)的一系列類(lèi)中,可以把復(fù)雜的判斷邏輯簡(jiǎn)單化灰羽。

? 當(dāng)一個(gè)對(duì)象行為取決于它的狀態(tài)驮履,并且它需要在運(yùn)行時(shí)刻根據(jù)狀態(tài)改變它的行為時(shí),就可以考慮使用狀態(tài)者模式廉嚼。

我的理解是:對(duì)象類(lèi)里面生成狀態(tài)類(lèi)的對(duì)象玫镐,而對(duì)象里面的具體的方法其實(shí)是生成的狀態(tài)類(lèi)對(duì)象的方法,而狀態(tài)類(lèi)對(duì)象方法里面操作結(jié)束總是要調(diào)用自己里面改變狀態(tài)的方法來(lái)改變實(shí)際調(diào)用他的對(duì)象類(lèi)里面狀態(tài)類(lèi)對(duì)象的狀態(tài)怠噪。

還有其他21種類(lèi)型的設(shè)計(jì)模式恐似,詳情可以查看當(dāng)日文檔內(nèi)容。


第二組:馮佳麗 Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)

——轉(zhuǎn)載

緩存傍念,就是將程序或系統(tǒng)經(jīng)常要調(diào)用的對(duì)象存在內(nèi)存中矫夷,一遍其使用時(shí)可以快速調(diào)用,不必再去創(chuàng)建新的重復(fù)的實(shí)例憋槐。這樣做可以減少系統(tǒng)開(kāi)銷(xiāo)双藕,提高系統(tǒng)效率。

緩存主要可分為二大類(lèi):

一阳仔、通過(guò)文件緩存,顧名思義文件緩存是指把數(shù)據(jù)存儲(chǔ)在磁盤(pán)上忧陪,不管你是以XML格式,序列化文件DAT格式還是其它文件格式近范;

二嘶摊、內(nèi)存緩存,也就是實(shí)現(xiàn)一個(gè)類(lèi)中靜態(tài)Map,對(duì)這個(gè)Map進(jìn)行常規(guī)的增刪查.



第三組:蔡永堅(jiān) AugularJS-特性1

AngularJS是一個(gè)新出現(xiàn)的強(qiáng)大客戶(hù)端技術(shù)评矩,提供給大家的一種開(kāi)發(fā)強(qiáng)大應(yīng)用的方式叶堆。這種方式利用并且擴(kuò)展HTML,CSS和javascript稚照,并且彌補(bǔ)了它們的一些非常明顯的不足蹂空。本應(yīng)該使用HTML來(lái)實(shí)現(xiàn)而現(xiàn)在由它開(kāi)發(fā)的動(dòng)態(tài)一些內(nèi)容俯萌。

AngularJS有五個(gè)最重要的功能和特性:

特性一:雙向的數(shù)據(jù)綁定

數(shù)據(jù)綁定可能是AngularJS最酷最實(shí)用的特性果录。它能夠幫助你避免書(shū)寫(xiě)大量的初始代碼從而節(jié)約開(kāi)發(fā)時(shí)間。一個(gè)典型的web應(yīng)用可能包含了80%的代碼用來(lái)處理咐熙,查詢(xún)和監(jiān)聽(tīng)DOM弱恒。數(shù)據(jù)綁定是的代碼更少,你可以專(zhuān)注于你的應(yīng)用棋恼。

我們想象一下Model是你的應(yīng)用中的簡(jiǎn)單事實(shí)返弹。你的Model是你用來(lái)讀取或者更新的部分锈玉。數(shù)據(jù)綁定指令提供了你的Model投射到view的方法。這些投射可以無(wú)縫的义起,毫不影響的應(yīng)用到web應(yīng)用中拉背。

傳統(tǒng)來(lái)說(shuō),當(dāng)model變化了默终。 開(kāi)發(fā)人員需要手動(dòng)處理DOM元素并且將屬性反映到這些變化中椅棺。這個(gè)一個(gè)雙向的過(guò)程。一方面齐蔽,model變化驅(qū)動(dòng)了DOM中元素變化两疚,另一方面,DOM元素的變化也會(huì)影響到Model含滴。這個(gè)在用戶(hù)互動(dòng)中更加復(fù)雜诱渤,因?yàn)殚_(kāi)發(fā)人員需要處理和解析

這些互動(dòng),然后融合到一個(gè)model中谈况,并且更新View勺美。這是一個(gè)手動(dòng)的復(fù)雜過(guò)程,當(dāng)一個(gè)應(yīng)用非常龐大的時(shí)候碑韵,將會(huì)是一件非常費(fèi)勁的事情励烦。

這里肯定有更好的解決方案!那就是AngularJS的雙向數(shù)據(jù)綁定泼诱,能夠同步DOM和Model等等坛掠。

特性二:模板

在AngularJS中,一個(gè)模板就是一個(gè)HTML文件治筒。但是HTML的內(nèi)容擴(kuò)展了屉栓,包含了很多幫助你映射model到view的內(nèi)容。

HTML模板將會(huì)被瀏覽器解析到DOM中耸袜。DOM然后成為AngularJS編譯器的輸入友多。AngularJS將會(huì)遍歷DOM模板來(lái)生成一些指導(dǎo),即堤框,directive(指令)域滥。所有的指令都負(fù)責(zé)針對(duì)view來(lái)設(shè)置數(shù)據(jù)綁定。

我們要理解AuguarJS并不把模板當(dāng)做String來(lái)操作蜈抓。輸入AngularJS的是DOM而非string启绰。數(shù)據(jù)綁定是DOM變化,不是字符串的連接或者innerHTML變化沟使。使用DOM作為輸入委可,而不是字符串,是AngularJS區(qū)別于其它的框架的最大原因腊嗡。使用DOM允許你擴(kuò)展指令詞匯并且可以創(chuàng)建你自己的指令着倾,甚至開(kāi)發(fā)可重用的組件拾酝。

最大的好處是為設(shè)計(jì)師和開(kāi)發(fā)者創(chuàng)建了一個(gè)緊密的工作流。設(shè)計(jì)師可以像往常一樣開(kāi)發(fā)標(biāo)簽卡者,然后開(kāi)發(fā)者拿過(guò)來(lái)添加上功能蒿囤,通過(guò)數(shù)據(jù)綁定將會(huì)使得這個(gè)過(guò)程非常簡(jiǎn)單。

這里有一個(gè)例子崇决,我們使用ng-repeat指令來(lái)循環(huán)圖片數(shù)組并且加入img模板蟋软,如下:

function AlbumCtrl($scope) {
    scope.images = [
        {"image":"img/image_01.png", "description":"Image 01 description"},
        {"image":"img/image_02.png", "description":"Image 02 description"},
        {"image":"img/image_03.png", "description":"Image 03 description"},
        {"image":"img/image_04.png", "description":"Image 04 description"},
        {"image":"img/image_05.png", "description":"Image 05 description"}
    ];
}
<div ng-controller="AlbumCtrl">
  <ul>
    <li ng-repeat="image in images">
      <img ng-src="http://m.cnblogs.com/142260/{{image.thumbnail}}" rel="nofollow"/>
    </li>
  </ul>
</div>

這里還有一件事值得提一句,AngularJS并不強(qiáng)制你學(xué)習(xí)一個(gè)新的語(yǔ)法或者從你的應(yīng)用中提出你的模板嗽桩。


第四組:張?jiān)? Django中提示TemplateDoesNotExist解決

Django中提示TemplateDoesNotExist解決

嘗試了配置DIRS為絕對(duì)路徑等方法岳守,均無(wú)效,之后改為空碌冶,親測(cè)bug消失

在settings.py中找到

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [''],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

其中湿痢,'DIRS': 配置為 ['']即可


第五組:陳孚楠 設(shè)計(jì)模式

1、 簡(jiǎn)單工廠模式
簡(jiǎn)單工廠模式是屬于創(chuàng)建型模式扑庞,又叫做靜態(tài)工廠方法(Static Factory Method)模式譬重,但不屬于23種GOF設(shè)計(jì)模式之一。簡(jiǎn)單工廠模式是由一個(gè)工廠對(duì)象決定創(chuàng)建出哪一種產(chǎn)品類(lèi)的實(shí)例罐氨。簡(jiǎn)單工廠模式是工廠模式家族中最簡(jiǎn)單實(shí)用的模式臀规,可以理解為是不同工廠模式的一個(gè)特殊實(shí)現(xiàn)。試想一下栅隐,當(dāng)我們?cè)赾odeing的時(shí)候塔嬉,在A類(lèi)里面只要NEW了一個(gè)B類(lèi)的對(duì)象,那么A類(lèi)就會(huì)從某種程度上依賴(lài)B類(lèi)租悄。如果在后期需求發(fā)生變化或者是維護(hù)的時(shí)候谨究,需要修改B類(lèi)的時(shí)候,我們就需要打開(kāi)源代碼修改所有與這個(gè)類(lèi)有關(guān)的類(lèi)了泣棋。

例子:
工廠生產(chǎn)仿生機(jī)器胶哲,機(jī)器都會(huì)說(shuō)話,機(jī)器狗“汪”潭辈,機(jī)器貓“喵“鸯屿。。把敢。
1寄摆、簡(jiǎn)單工廠模式:

    //接口產(chǎn)品Robot
    public interface Robot{   
        ...
        public void Ssy();
        ...
    }   
    //具體產(chǎn)品Dog
    public class Dog implements Robot{
        ...
        public void Ssy(){
            "汪~(yú)"
        }
        ...
    }
    //具體產(chǎn)品Cat
    public class Cat implements Robot{
        ...
        public void Ssy(){
            "喵~"
        }
        ...
    }
    //具體產(chǎn)品Bird
    public class Bird implements Robot{
        ...
        public void Ssy(){
            "嘰~"
        }
        ...
    }

    ...
    
    //工廠
    public class RobotFactory{
        ...
        //生產(chǎn)機(jī)器的方法
        public Robot Produce(string type){
            if(type=="Dog")return new Dog();
            else if(type=="Cat")return new Cat();
            else if(type=="Bird")return new Bird();
            ...
        }
        ...
    }
    
    main(){
        RobotFactory rf = new RobotFactory();
        Robot r = rf.Produce("Dog");
        r.Say(); 
    }

    輸出:"汪~(yú)"

提前需要知道你會(huì)需要哪些機(jī)器人,設(shè)定好技竟。

如果工廠需要生產(chǎn)別的產(chǎn)品冰肴,就要在工廠的生產(chǎn)方法中增加一個(gè)邏輯判斷屈藐。 用戶(hù)得要讓程序員增加產(chǎn)品實(shí)體類(lèi)并且修改工廠生產(chǎn)方法的代碼榔组。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熙尉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子搓扯,更是在濱河造成了極大的恐慌检痰,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锨推,死亡現(xiàn)場(chǎng)離奇詭異铅歼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)换可,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)椎椰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人沾鳄,你說(shuō)我怎么就攤上這事慨飘。” “怎么了译荞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵瓤的,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吞歼,道長(zhǎng)圈膏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任篙骡,我火速辦了婚禮稽坤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘糯俗。我一直安慰自己慎皱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布叶骨。 她就那樣靜靜地躺著茫多,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忽刽。 梳的紋絲不亂的頭發(fā)上天揖,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音跪帝,去河邊找鬼今膊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伞剑,可吹牛的內(nèi)容都是我干的斑唬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恕刘!你這毒婦竟也來(lái)了缤谎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤褐着,失蹤者是張志新(化名)和其女友劉穎坷澡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體含蓉,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡频敛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馅扣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斟赚。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖差油,靈堂內(nèi)的尸體忽然破棺而出汁展,到底是詐尸還是另有隱情,我是刑警寧澤厌殉,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布食绿,位于F島的核電站,受9級(jí)特大地震影響公罕,放射性物質(zhì)發(fā)生泄漏器紧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一楼眷、第九天 我趴在偏房一處隱蔽的房頂上張望铲汪。 院中可真熱鬧,春花似錦罐柳、人聲如沸掌腰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)齿梁。三九已至,卻和暖如春肮蛹,著一層夾襖步出監(jiān)牢的瞬間勺择,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工伦忠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留省核,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓昆码,卻偏偏與公主長(zhǎng)得像气忠,于是被迫代替她去往敵國(guó)和親邻储。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容