电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:85日期: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
相關文章:
主站蜘蛛池模板: 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 郑州律师咨询-郑州律师事务所_河南锦盾律师事务所 | 河南15年专业网站建设制作设计,做网站就找郑州启凡网络公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 煤机配件厂家_刮板机配件_链轮轴组_河南双志机械设备有限公司 | 微量水分测定仪_厂家_卡尔费休微量水分测定仪-淄博库仑 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 定坤静电科技静电消除器厂家-除静电设备 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 回转窑-水泥|石灰|冶金-巩义市瑞光金属制品有限责任公司 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 |