一、介绍
抽象工厂属于创建型模式,它的特点是将创建方法延迟到子类,每个工厂可以生产多个产品。
二、类图分析
IViewFactory:父工厂,视图工厂的顶层接口类
AndroidViewFactory:具体工厂类,生产android相关的视图
IOSViewFactory:具体工厂类,生产IOS相关的视图
IButton:父产品,button的接口类
ITextView:父产品,与IButton一致,同一产品族
AndroidButton,IOSButton:具体的产品类,IButton的实现类
AndroidTextView,IOSTextView:具体的产品类,ITextView的实现类
三、代码实现
public interface IViewFactory {
IButton createButton();
ITextView createTextView();
}
public class AndroidViewFactory implements IViewFactory {
public IButton createButton(){
return new AndroidButton();
}
public ITextView createTextView(){
return new AndroidTextView();
}
}
public class IOSViewFactory implements IViewFactory {
public IButton createButton(){
return new IOSButton();
}
public ITextView createTextView(){
return new IOSTextView();
}
}
public interface IButton {
void show();
}
public interface ITextView{
void show();
}
public class AndroidButton implements IButton {
void show(){
}
}
public class AndroidTextView implements IButton {
void show(){
}
}
public class IOSButton implements IButton {
void show(){
}
}
public class IOSTextView implements IButton {
void show(){
}
}