欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java學(xué)到什么時候開始看設(shè)計模式最合適?

榮姿康2年前10瀏覽0評論

謝邀!java學(xué)到什么時候看設(shè)計模式最合適?我的建議是最好能有一定的Java基礎(chǔ)后學(xué)習(xí),當(dāng)然這里說的基礎(chǔ)指的是已經(jīng)能簡單的小項目,比如說寫個學(xué)生成績管理系統(tǒng)(ps:當(dāng)然不一定需要界面呈現(xiàn))

為什么需要學(xué)設(shè)計模式

設(shè)計模式(DesignPattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類的、代碼設(shè)計經(jīng)驗的總結(jié)。使用設(shè)計模式的目的:為了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。設(shè)計模式使代碼編寫真正工程化;設(shè)計模式是軟件工程的基石脈絡(luò),如同大廈的結(jié)構(gòu)一樣。

設(shè)計模式是前人從不斷實踐中總結(jié)出來的一套經(jīng)驗,與語言無關(guān),而是從代碼設(shè)計的角度上入手,目的是為了使我們的代碼更具有可維護性、可讀性、可擴展性。

咱們從Java本身語言來說,很多類的設(shè)計就充分利用了23種設(shè)計模式,這里附上我整理的一張圖:

再就從上文說到的成績管理系統(tǒng)來說,其總共包括以下幾個實體:

1、班級:一個老師可以管理多個班級,一個學(xué)生只能有一個班級

2、老師:負(fù)責(zé)將每個學(xué)生相應(yīng)學(xué)科的成績錄入到系統(tǒng)中

3、學(xué)生:查看自己不同學(xué)科的成績

4、學(xué)科:一個班級有多個學(xué)科,一個學(xué)科有一個老師

那么這里構(gòu)造一個班級對象,其就充分利用了好幾種設(shè)計模式:

組合模式:兩個屬性teachers和students,通過兩個add方法來添加Teacher和Student

迭代器模式:通過showStudents方法來獲取查看班級下所有學(xué)生的迭代器(ps:這里復(fù)用了Java#List的迭代器)

建造者模式:StudyClass本身是個建造者模式的實體,通過添加Teacher和Student來形成一個班級

publicclassStudyClass{
privatefinalMap<Subject,Teacher>teachers;
privatefinalList<Student>students;
publicvoidaddTeacher(Subjectsubject,Teacherteacher){teachers.put(subject,teacher);}
publicvoidaddStudent(Students){students.add(s);}
publicIteratorshowStudents(){}
}

所以上面的這個例子,你有發(fā)現(xiàn)什么嗎?其實我們在日常開發(fā)中,在不斷的應(yīng)用著設(shè)計模式,早日學(xué)設(shè)計模式,能讓我們做到了解到他人寫這個代碼的設(shè)計理念,能知道背后的邏輯,而不是停留在應(yīng)用的階段。

另外,同樣是寫代碼,有的人寫的代碼可讀性、可維護性極差,我們經(jīng)常會看到有人在網(wǎng)上爆料說XX同事寫的代碼怎么怎么爛;有的人寫的代碼會讓你如浴春風(fēng),賞心悅目。

對于Java語言來說,其是一門面向?qū)ο笤O(shè)計的語言,而設(shè)計模式本身也是基于面向?qū)ο笤O(shè)計產(chǎn)生的,這也更具有貼合性。

再一個,如果你想成為開源項目的commiter,那么對于代碼質(zhì)量這塊要求就更高了,而設(shè)計模式就像一把利劍能幫你斬殺一些爛代碼。

總之,更早的接觸設(shè)計模式,了解其背后的設(shè)計理念,會讓你的代碼質(zhì)量質(zhì)的增長。


每天進步一點點!我是90后IT男,日常分享原創(chuàng)或轉(zhuǎn)載的知識!!