哪个素材网站做美工最好,网站挑错,针对网站开发者的问答网站,外贸网站 服务器一、简介
门面模式#xff0c;也叫外观模式#xff0c;英文全称是Facade Design Pattern。门面模式为子系统提供一组统一的接口#xff0c;定义一组高层接口让子系统更易用。
目的#xff1a;简化复杂系统的交互方式
特点#xff1a;提供一个统一的交互接口
二、UML类…一、简介
门面模式也叫外观模式英文全称是Facade Design Pattern。门面模式为子系统提供一组统一的接口定义一组高层接口让子系统更易用。
目的简化复杂系统的交互方式
特点提供一个统一的交互接口
二、UML类图 三、案例
以下案例是家庭影院家庭影院中有各种播放设备如DVD、音响等整体对外提供看电影和关闭的功能。
package mainimport fmttype Projecter struct {
}func (Projecter) On() {fmt.Println(Turning on the projecter...)
}func (Projecter) Off() {fmt.Println(Turning off the projecter...)
}type DVDPlayer struct {
}func (DVDPlayer) Play() {fmt.Println(Playing the DVDPlayer...)
}func (DVDPlayer) Stop() {fmt.Println(Stopping the DVDPlayer...)
}type SoundSystem struct {
}func (SoundSystem) On() {fmt.Println(Turning on the sound system...)
}func (SoundSystem) Off() {fmt.Println(Turning off the sound system...)
}type HomeTheaterFacade struct {Projecter ProjecterDVDPlayer DVDPlayerSoundSystem SoundSystem
}func NewHomeTheaterFacade(projecter Projecter, dvdPlayer DVDPlayer, soundSystem SoundSystem) HomeTheaterFacade {homeTheaterFacade : HomeTheaterFacade{}homeTheaterFacade.Projecter projecterhomeTheaterFacade.DVDPlayer dvdPlayerhomeTheaterFacade.SoundSystem soundSystemreturn homeTheaterFacade
}func (htf HomeTheaterFacade) WatchMovie() {htf.Projecter.On()htf.DVDPlayer.Play()htf.SoundSystem.On()
}func (htf HomeTheaterFacade) StopMovie() {htf.Projecter.Off()htf.DVDPlayer.Stop()htf.SoundSystem.Off()
}func main() {projecter : Projecter{}dvdPlayer : DVDPlayer{}soundSystem : SoundSystem{}homeTheaterFacade : NewHomeTheaterFacade(projecter, dvdPlayer, soundSystem)homeTheaterFacade.WatchMovie()homeTheaterFacade.StopMovie()
}