zoukankan      html  css  js  c++  java
  • 抽象工厂模式

    个人博客

    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();
    	}
    
    }
    

    小结

    抽象工厂模式优点:

    分离接口与实现

    抽象工厂模式缺点:

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

  • 相关阅读:
    超简单实例使用websocket进行server和client实时通信
    antd的table行key自增长
    selenium元素定位Xpath,Contains,CssSelector
    slenium使用鼠标+键盘事件或者双击实现代码
    使用python+pychram进行API测试(接口测试)初级STEP 1
    linux命令小常识
    sql中limit使用方法
    Swagger-API测试工具实战
    写 test-case心得
    测试之路之[前奏]
  • 原文地址:https://www.cnblogs.com/milovetingting/p/12203780.html
Copyright © 2011-2022 走看看