1、7适配器模式和外观模式适配器模式类图:代码:#includeusing namespace std;class Duck public: virtual void quack()=0; virtual void fly()=0;class MallardDuck:public Duck public: MallardDuck() MallardDuck() void quack() coutQuackendl; void fly() coutIm flyingendl; ;class Turkey public: virtual void gobble()=0; virtual void fl
2、y()=0;class WildTurkey:public Turkey public: WildTurkey() WildTurkey() void gobble() coutGobble gobbleendl; void fly() coutIm flying a short distancegobble(); void fly() for(int i=0;ifly(); TurkeyAdapter() ;void testDuck(Duck* d) d-quack(); d-fly();int main() MallardDuck* duck = new MallardDuck(); W
3、ildTurkey* turkey = new WildTurkey(); Duck* turkeyAdapter = new TurkeyAdapter(turkey); coutThe Tuekey says.gobble(); turkey-fly(); coutThe Duck says.endl; testDuck(duck); coutThe TurkeyAdapter says.endl; testDuck(turkeyAdapter);外观模式类图:代码:#includeusing namespace std;class PopcornPopper public: Popcor
4、nPopper() PopcornPopper() void on() coutPopcorn Popper onendl; void off() coutPopcorn Popper offendl; void pop() coutPopcorn Popper popping popcorn!endl; void toString() coutPopcorn Popperendl; ;class TheaterLights public: TheaterLights() TheaterLights() void on() coutTheater Ceiling Lights onendl;
5、void off() coutTheater Ceiling Lights offendl; void dim() coutTheater Ceiling Lights dimming to 10%endl; void toString() coutTheater Ceiling Lightsendl; ;class Screen public: Screen() Screen() void up() coutTheater Screen going upendl; void down() coutTheater Screen going downendl; void toString() c
6、outTheater Screenendl; ;class Turner public: /Amplifer* amplifer; int am; int fm; int frequency; Turner() Turner() void on() coutTurner onendl; void off() coutTurner offendl; void setAm(int a) am = a; void setFm(int f) fm = f; void setFrequency(int f) frequency = f; void toString() coutTurnerendl; ;
7、class CdPlayer public: /Amplifer* amplifer; CdPlayer() CdPlayer() void on() coutTop-O-Line CdPlayer onendl; void off() coutTop-O-Line CdPlayer offendl; void eject() coutTop-O-Line Cd Player ejectendl; void play(string movie) coutTop-O-Line CdPlayer playing movieendl; void pause(string movie) coutTop
8、-O-Line CdPlayer paused movieendl; void stop(string movie) coutTop-O-Line CdPlayer stopped movieendl; ;class DvdPlayer public: /Amplifer* amplifer; DvdPlayer() DvdPlayer() void on() coutTop-O-Line Dvd Player onendl; void off() coutTop-O-Line Dvd Player offendl; void eject() coutTop-O-Line Dvd Player
9、 ejectendl; void play(string movie) coutTop-O-Line Dvd Player playing movieendl; void pause(string movie) coutTop-O-Line Dvd Player paused movieendl; void setSurroundAudio() coutTop-O-Line Dvd Player setting surroundAudio; void setTwoChannelAudio() coutTop-O-Line Dvd Player setting twoChannelAudio;
10、void stop(string movie) coutTop-O-Line Dvd Player stopped movieendl; ;class Projector public: /Amplifer* amplifer; Projector() Projector() void on() coutTop-O-Line Projector onendl; void off() coutTop-O-Line Projector offendl; void tvMode() coutTop-O-Line Projector in tv modeendl; void wideScreenMod
11、e() coutTop-O-Line Projector in wideScreen mode (16x9 aspect ratio)endl; void toString() coutTop-O-Line Projectorendl; ;class Amplifer public: Turner* turner; DvdPlayer* dvdPlayer; CdPlayer* cdPlayer; Amplifer() Amplifer() void on() coutTop-O-Line Amplifer onendl; void off() coutTop-O-Line Amplifer
12、offendl; void setCd(CdPlayer* cd) cdPlayer = cd; void setDvd(DvdPlayer* dvd) dvdPlayer = dvd; coutTop-O-Line Amplier setting DVD player to Top-O-Line DVD Playerendl; void setStereoSound() coutTop-O-Line Amplier sterso sound on(1 speakers,1 subwoofer)endl; void setSurroundSound() coutTop-O-Line Ampli
13、er surround sound on(5 speakers,1 subwoofer)endl; void setTurner(Turner* t) turner = t; void setVolume() coutTop-O-Line Amplier setting volume to 5 endl; void toString() coutAmpliferendl; ;class HomeTheaterFacade public: Amplifer* amp; Turner* turner; DvdPlayer* dvd; CdPlayer* cd; Projector* project
14、or; TheaterLights* lights; Screen* screen; PopcornPopper* popper; HomeTheaterFacade(Amplifer* a,Turner* t,DvdPlayer* d,CdPlayer* c,Projector* p,TheaterLights* l,Screen* s,PopcornPopper* po) amp = a; turner = t; dvd = d; cd = c; projector = p; lights = l; screen = s; popper = po; void watchMovie(stri
15、ng movie) coutGet ready to watch a movie.on(); popper-pop(); lights-dim(); screen-down(); projector-on(); projector-wideScreenMode(); amp-on(); amp-setDvd(dvd); amp-setSurroundSound(); amp-setVolume(); dvd-on(); dvd-play(movie); void endMovie(string movie) coutShutting movie theater down.off(); ligh
16、ts-on(); screen-up(); projector-off(); amp-off(); dvd-stop(movie); dvd-eject(); dvd-off(); ;int main() HomeTheaterFacade* homeTheater = new HomeTheaterFacade(new Amplifer(),new Turner(),new DvdPlayer(),new CdPlayer(),new Projector(),new TheaterLights(),new Screen(),new PopcornPopper(); homeTheater-watchMovie(Raiders of the Lost Ark); homeTheater-endMovie(Raiders of the Lost Ark);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1