深入设计模式-3.抽象工厂模式
来源:互联网 发布:阿里云学生认证 高中生 编辑:程序博客网 时间:2024/05/15 03:24
1.简介
抽象工厂模式:为创建一组相关或者相互依赖的对象提供一个接口,而且无需指定他们的具体类。抽象工厂模式与工厂方法模式主要区别在于抽象可以支持多个产品族,而工厂方法模式只能支持单一产品。
2.结构
3.示例
//抽象产品(Benz)
public interface Benz{
public String drive();
}
//产品实例(WhiteBenz)
public class WhiteBenz implementsBenz{
public String drive(){
return "drive WhiteBenz";
}
}
//产品实例(BlockBenz)
public class BlockBenz implementsBenz{
public String drive(){
return "drive BlockBenz";
}
}
//抽象产品(BMW)
public interface BMW{
public String drive();
}
//产品实例(WhiteBMW)
public class WhiteBMWimplements BMW{
public Stringdrive(){
return "driveWhiteBMW";
}
}
//产品实例(BlackBMW)
public class BlackBMW implementsBMW{
public String eat(){
return "driveBlackBMW";
}
}
//产品族抽象工厂
public interface CarFactory{
public Benz getBenz();
public BMW getBMW();
}
//产品族工厂(white)
public class WhiteFactory implements CarFactory{
public Benz getBenz(){
return new WhiteBenz();
}
public BMW getBMW(){
return new WhiteBMW();
}
}
//产品族工厂(black)
public class BlackFactory implements CarFactory{
public Benz getBenz(){
return new BlackBenz();
}
public BMW getBMW(){
return new BlackBMW();
}
}
public class Main{
public static void main(String[] args){
CarFactory wf = new WhiteFactory();
Benz wbenz = wf.getBenz();
BMW wbmw = wf.getBMW();
System.out.println(wbenz.drive());
System.out.println(wbmw.drive());
CarFactory bf = new BlackFactory();
Benz bbenz =bf.getBenz();
BMW bbmw = bf.getBMW();
System.out.println(bbenz.drive());
System.out.println(bbmw.drive());
}
}
- 深入设计模式-3.抽象工厂模式
- 设计模式深入学习-抽象工厂模式
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- 设计模式--抽象工厂
- 【设计模式】抽象工厂
- 设计模式---抽象工厂
- 【设计模式-抽象工厂】
- C# 截取上传flv文件中其中一帧图片
- 各种学习博客
- JSTL标签+EL表达式遍历List内容
- 我的学习之旅(8) Makefile
- 安卓--操作资源文件
- 深入设计模式-3.抽象工厂模式
- 音频编码介绍汇总
- iOS6的旋屏控制技巧
- java即时发布webservice
- Android 事件分发机制
- flume 高可用性 高可靠性 agent source
- GNU C的特性
- vnc 用手机app 控制你的电脑
- python字符串函数