http://www.verejava.com/?id=16999102164568
package com.facade.theory;
public class TestFacade
{
public static void main(String[] args)
{
Facade facade=new Facade();
facade.sing();
facade.dance();
facade.act();
}
}
package com.facade.theory;
public class Facade
{
private Light light;
private Music music;
private Video video;
public Facade()
{
light=new LightImpl();
music=new MusicImpl();
video=new VideoImpl();
}
public void sing()
{
System.out.println("开始演唱 伴随");
light.flash();
music.play();
}
public void dance()
{
System.out.println("开始跳舞 伴随");
light.flash();
music.play();
video.show();
}
public void act()
{
System.out.println("开始小品 伴随");
light.flash();
video.show();
}
}
package com.facade.theory;
public interface Light
{
public void flash();
}
package com.facade.theory;
public class LightImpl implements Light
{
@Override
public void flash()
{
System.out.println("闪彩灯");
}
}
package com.facade.theory;
public interface Music
{
public void play();
}
package com.facade.theory;
public class MusicImpl implements Music
{
@Override
public void play()
{
System.out.println("播放古典音乐");
}
}
package com.facade.theory;
public interface Video
{
public void show();
}
package com.facade.theory;
public class VideoImpl implements Video
{
@Override
public void show()
{
System.out.println("显示高山流水视频");
}
}

本文介绍了一个使用Java实现的外观模式示例。通过定义一个Facade类来简化子系统中多个复杂类的接口,使它们可以被作为单一接口调用。具体包括唱、跳、演等操作的实现,并展示了如何通过外观类统一调用这些复杂子系统的功能。

780

被折叠的 条评论
为什么被折叠?



