6 抽象工厂模式
来源:互联网 发布:weka 自定义 分类算法 编辑:程序博客网 时间:2024/05/11 18:37
一 抽象工厂模式:这种类型的设计模式属于创建型模式,抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。
Disk接口
实现类:U盘和Red
3 ColorFactory和DiskFactory:
4 factoryProduct类:
5 Main方法
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
二 实例
1 接口和实现类
Color接口
public interface Color {void myColor(); }
Disk接口
public interface Disk {void read();void write();}
实现类:U盘和Red
public class UPanImpl implements Disk{public void read() {System.out.println("read u盘");}public void write() {System.out.println("write U盘");}}
public class RedImpl implements Color {public void myColor() {System.out.println("我是red");}}2 创建抽象类MyAbtractFactory来获取工厂
public abstract class MyAbtractFactory {public abstract Color getColor(String color);public abstract Disk getDisk(String disk);}
3 ColorFactory和DiskFactory:
public class ColorFactory extends MyAbtractFactory {@Overridepublic Color getColor(String color) {if(color.equalsIgnoreCase("Red"))return new RedImpl();if(color.equalsIgnoreCase("Green"))return new GreenImpl();return null;}@Overridepublic Disk getDisk(String disk) {return null;}}
public class DiskFactory extends MyAbtractFactory{@Overridepublic Color getColor(String color) {return null;}@Overridepublic Disk getDisk(String disk) {if(disk.equalsIgnoreCase("UPan"))return new UPanImpl();if(disk.equalsIgnoreCase("Mp3Impl"))return new Mp3Impl();return null;}}
4 factoryProduct类:
public class FactoryProduct {public static MyAbtractFactory getFactory(String choice){if(choice.equalsIgnoreCase("Disk"))return new DiskFactory();if(choice.equalsIgnoreCase("Color"))return new ColorFactory();return null;}}
5 Main方法
public class Main {public static void main(String[] args) {MyAbtractFactory diskFactory = FactoryProduct.getFactory("Disk");Disk disk1 = diskFactory.getDisk("UPan");disk1.read();MyAbtractFactory colorFactory = FactoryProduct.getFactory("Color");Color color1 = colorFactory.getColor("Red");color1.myColor();}}输出结果: read u盘
我是red
2 0
- 6 抽象工厂模式
- 6,抽象工厂模式
- Headfirst-6 抽象工厂模式
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- java设计模式(6)---抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C# 学习之旅(一)
- k8s网络插件cni
- 紫书例题 10-26 UVa 11440
- Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。
- Redis集群搭建与简单使用
- 6 抽象工厂模式
- 年纪大的程序员有何出路?
- kernel互斥锁mutex
- IOS 国际化设置(i18n)
- 谈谈互联网后端基础设施
- qw
- Android异常IndexNotReadyException: Please change caller according to .....
- eclipse maven 插件的安装和配置
- Android系统Root与静默安装