国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

JavaScript組合模式---引入案例分析

瀏覽:57日期:2023-10-25 15:52:56

本文實例講述了JavaScript組合模式。分享給大家供大家參考,具體如下:

首先:

使用一個例子來引入組合模式,需求為(1)有一個學校有2個班(一班,二班)(2)每個班級分2個小組(一班一組,一班二組,二班一組,二班二組)(3)學校計算機教室有限,每一個小組分著來上課

然后:根據需求我們可以簡單看出這里面涉及到 學校,班級,組,和學生總共4個類

使用程序模擬 這4個類為,

(1)學校類

var school=function (name) { this.name=name; var classes=new Array(); this.addClasses=function (cla) { classes.push(classe); } this.getClass=function () { return classes; } }

(2)班級類

//班級類 var classes=function (name) { this.name = name; var groups = new Array(); this.addGroup = function (group) { groups.push(group); return this; }; this.getGroups = function () { return groups; } };

(3)組類

//組 var group=function (name) { this.name=name; var students=new Array(); var addStudents=function (student) { students.push(student); return this; } this.geStudent=function () { return students; } };

(4)學生類

//學生類 var student=function (name) { this.name=name; this.gotoClass=function () { document.write(name+':我是學生,我要去上課 ') }; this.finishClass=function () { document.write(name+': 終于下課了'); } };

其次,測試需滿足如下為:

(1)每個班級分2個小組(一班一組,一班二組,二班一組,二班二組)(2)學校計算機教室有限,每一個小組的學生分著來上課(3)現在我們倒著寫,從學生-->組->班級-->學校

//學生實例 var astudent=new student('我是a同學'); var bstudent=new student('我是b同學'); var cstudent=new student('我是c同學'); var dstudent=new student('我是d同學'); var estudent=new student('我是e同學'); var fstudent=new student('我是f同學'); var gstudent=new student('我是g同學'); var hstudent=new student('我是h同學'); var istudent=new student('我是i同學');//班級實例(1) var class1=new classes('一班'); //組1 var oneOne=new group('一班一組'); //組中添加學生 oneOne.addStudents(astudent).addStudents(bstudent); //組2 var oneTwo=new group('一班二組'); //組中添加學生 oneTwo.addStudents(cstudent).addStudents(dstudent); class1.addGroup(oneOne).addGroup(oneTwo); //班級實例2 var class2=new classes('二班'); //組1 var towOne=new group('二班一組'); //組中添加學生 towOne.addStudents(estudent).addStudents(fstudent); //組2 var towTwo=new group('二班二組'); //組中添加學生 towTwo.addStudents(gstudent).addStudents(hstudent).addStudents(istudent); // class2.addGroup(towOne).addGroup(towTwo); //學校實例 var usSchool=new school('組合模式學校');

最后,開學了,我們準備按照要求去上課吧,

安排為:一班一組去上課 學校-->班級-->組-->學生

var classes=usSchool.getClass();//班級 for(var i=0;i<classes.length;i++){ if(classes[i].name=='一班'){ for(var j=0;j<classes[i].getGroups().length;j++){ if(classes[i].classes[i].getGroups()[j]=='一組'){ var students=classes[i].classes[i].getGroups()[j].geStudent(); for(var k=0;k<students.length;k++){ students[k].gotoClass(); } } } } }

最后,我只是想安排一個都要寫這么多的代碼,那如何是一個學校有上千個班級,那么要瘋了。

這種一定不適合業務的擴展,為此我們使用組合模式來解決上述的問題。為啥要用設計模式呢?因為設計模式有如下的一些操作方式:(1)組合模式中把對象分為兩種(組合對象,和葉子對象)(2)組合對象和葉子對象實現:同一批操作(3)對組合對象執行的操作可以向下傳遞到葉子節點進行操作(4)這樣就會弱化類與類之間的耦合(5)他常用的手法是把對象組合成屬性結構的對象

接下來介紹:JavaScript組合設模式--改進上述引入的例子

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 香港aa三级久久三级 | 男人的天堂在线观看视频不卡 | 台湾香港澳门三级在线 | 狠狠色狠狠色狠狠五月ady | 日韩精品在线播放 | 日本一级毛片视频无遮挡免费 | 日本在线亚州精品视频在线 | 五月色一区二区亚洲小说 | 91热久久免费频精品动漫99 | 成人一区二区免费中文字幕 | 黄a免费| 亚洲一级大片 | 欧美日本一道道一区二区三 | 免费国产午夜高清在线视频 | 国产精品久久久久久久久久日本 | 国产精品1区2区 | 新26uuu在线亚洲欧美 | 99在线观看精品免费99 | 91视频99 | 99久久99久久精品免费看子 | 亚洲国产精品久久久久久网站 | 麻豆第一页 | 亚洲狠狠ady亚洲精品大秀 | 99久久精品一区二区三区 | 成人午夜影视全部免费看 | 亚洲精品久久一区毛片 | 深夜福利网站在线观看 | 国产亚洲精品网站 | 欧美久色| 三级网址免费 | 深夜在线观看大尺度 | 亚洲加勒比| 日本精品中文字幕有码 | 视频二区在线观看 | 97在线视频免费播放 | 在线欧美视频 | 狠狠色婷婷丁香综合久久韩国 | 欧美激情国产一区在线不卡 | 在线精品一区二区三区 | 一区二区三区亚洲 | 日韩精品视频美在线精品视频 |