应用场景
某手机操作系统可以根据用户不同的喜好在多种主题之间进行切换,随着主题的变化,系统中的字体、app图标、壁纸、锁屏壁纸等元素会随之发生变化。
使用抽象工厂模式设计手机主题库
创建元素接口
//图标
public interface Oyy22Icon {
public void changeIcon();
}
//字体
public interface Oyy22Typeface {
public void changeTypeface();
}
//壁纸
public interface Oyy22Wallpaper {
public void changeWallpaper();
}
//锁屏壁纸
public interface Oyy22LsWallpaper {
public void changeLsWallpaper();
}
创建主题A
public class Oyy22IconA implements Oyy22Icon{
@Override
public void changeIcon(){
System.out.println("图标1已应用!");
}
}
public class Oyy22TypefaceA implements Oyy22Typeface{
@Override
public void changeTypeface() {
System.out.println("字体1已应用!");
}
}
public class Oyy22WallpaperA implements Oyy22Wallpaper{
@Override
public void changeWallpaper() {
System.out.println("壁纸1已应用!");
}
}
public class Oyy22LsWallpaperA implements Oyy22LsWallpaper {
@Override
public void changeLsWallpaper() {
System.out.println("锁屏壁纸1已应用!");
}
}
创建主题B
public class Oyy22IconB implements Oyy22Icon {
@Override
public void changeIcon(){
System.out.println("图标2已应用!");