• 抽象工厂模式


    个人博客

    http://www.milovetingting.cn

    抽象工厂模式

    模式介绍

    抽象工厂模式,也是创建型设计模式之一。

    模式的定义

    为创建一组相关或者相互依赖的对象提供一个接口,而不需要指定它们的具体类。

    使用场景

    一个对象族有相同的约束时可以使用抽象工厂模式。如,Android,ios都有短信软件和拨号软件,两者都属于软件的范畴,但它们所在的操作系统平台不一样,这时可以使用抽象工厂模式来实现。

    简单实现

    抽象产品类

    public abstract class AbstractProductA {
    
    	public abstract void method();
    
    }
    
    public abstract class AbstractProductB {
    	
    	public abstract void method();
    
    }
    

    抽象工厂类

    public abstract class AbstractFactory {
    	
    	public abstract AbstractProductA createProductA();
    	
    	public abstract AbstractProductB createProductB();
    
    }
    

    具体产品类

    public class ProductA1 extends AbstractProductA{
    
    	@Override
    	public void method() {
    		
    	}
    
    }
    
    public class ProductA2 extends AbstractProductA{
    
    	@Override
    	public void method() {
    		
    	}
    
    }
    
    public class ProductB1 extends AbstractProductB{
    
    	@Override
    	public void method() {
    		
    	}
    
    }
    
    public class ProductB2 extends AbstractProductB {
    
    	@Override
    	public void method() {
    
    	}
    
    }
    

    具体工厂类

    public class Factory1 extends AbstractFactory{
    
    	@Override
    	public AbstractProductA createProductA() {
    		return new ProductA1();
    	}
    
    	@Override
    	public AbstractProductB createProductB() {
    		return new ProductB1();
    	}
    
    }
    
    public class Factory2 extends AbstractFactory {
    
    	@Override
    	public AbstractProductA createProductA() {
    		return new ProductA2();
    	}
    
    	@Override
    	public AbstractProductB createProductB() {
    		return new ProductB2();
    	}
    
    }
    

    小结

    抽象工厂模式优点:

    分离接口与实现

    抽象工厂模式缺点:

    一是类文件的爆炸性增加,二是不太容易扩展新的产品类,因为每增加一个产品类就需要修改抽象工厂。

  • 相关阅读:
    操作系统__kali(1)基本操作指令,以及常用工具
    Log4net入门(回滚日志文件篇)
    Log4net入门(日志文件篇)
    Log4net入门(控制台篇)
    openwrt控制GPIO
    openwrt DTS介绍
    openwrt bin文件解析
    STM32(三十)蓝牙通信
    openwrt的led configuration
    uci文件生成脚本函数说明
  • 原文地址:https://www.cnblogs.com/milovetingting/p/12203780.html
Copyright © 2020-2023  润新知