1 / 130
文档名称:

创建型软件设计模式ppt课件.ppt

格式:ppt   大小:1,206KB   页数:130页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

创建型软件设计模式ppt课件.ppt

上传人:miao19720107 2020/9/23 文件大小:1.18 MB

下载得到文件列表

创建型软件设计模式ppt课件.ppt

文档介绍

文档介绍:第3章创建型模式学时数:6总体介绍(1of3)New不是万能的有时候不知道具体类型有时候要创建一系列相关的对象有时候要组装一个复杂对象有时候要保证某种类型的对象个数是固定的有时候要在已有的对象基础上产生新的对象总体介绍(2of3)优先使用对象组合,而不是继承从固定行为的硬编码定义较小的行为集,再任意组合成复杂的行为不只是创建一个类的对象,而是要创建许多相关的对象在创建这些相关对象时应用创建型模式总体介绍(3of3)抽象(创建相关的一系列对象过程)意味着对客户隐藏下列内容创建了哪些具体类的对象(因为客户只知道接口)对象是怎样被创建的创建的相关对象是如何组合成更复杂的对象的Givesflexibilityin(可以变化的方面)whatgetscreated(创建什么)whocreatesit(由谁创建)howitgetscreated(如何创建)whenitgetscreated(何时创建)允许你用结构和功能差别很大的对象来配置一个系统,配置可以是静态的,也可以是动态的。引例在迷宫(maze)游戏中,首先必须创建一个迷宫,一个迷宫对象由多个房间对象构成,房间又由墙壁和门构成,如何创建它呢?、wall、door:迷宫的组成类型。Maze举例MazeClassespublicabstractclassMapSite{publicabstractvoidenter();}lassWallextendsMapSite{publicvoidenter(){}}MapSiteenter()Wallenter()lassDoorextendsMapSite{Door(Rooms1,Rooms2){side1=s1;side2=s2;}publicvoidenter(){}publicRoomotherSideFrom(Roomr){if(r==side1)returnside2;elseif(r==side2)returnside1;elsereturnnull;}publicvoidsetOpen(booleanb){open=b;}publicbooleangetOpen(){returnopen;}privateRoomside1;privateRoomside2;booleanopen;}MapSiteenter()RoomDooropen:booleanenter()otherSideFrom(Room):Room2side1,side2[0..4]lassDirection{publicfinalstaticintFirst=0;publicfinalstaticintNorth=First;publicfinalstaticintSouth=North+1;publicfinalstaticintEast=South+1;publicfinalstaticintWest=East+1;publicfinalstaticintLast=West;publicfinalstaticintNum=Last-First+1;}lassRoomextendsMapSite{publicRoom(intr){room_no=r;}publicvoidenter(){}publicvoidsetSide(intdirection,MapSitems){side[direction]=ms;}publicMapSitegetSide(intdirection){returnside[direction];}publicvoidsetRoom_no(intr){room_no=r;}publicintgetRoom_no(){returnroom_no;}privateintroom_no;privateMapSite[]side=newMapSite[];}MapSiteenter()Roomenter()4