• 工厂模式


    工厂模式:
    在创建对象时,不会暴漏给调用者具体创建逻辑,是通过一个公共的接口指向创建的对象。

    介绍

    意图:创建一个创建对象的接口,让其子类来决定实例化哪一个工厂类,工厂模式使创建过程延迟到子类进行。
    何时使用:明确不同情况下创建不同的实例。
    关键代码:创建对象延迟到字类进行。
    优点:
    只需知道名称就可以了
    屏蔽了产品的具体实现, 调用者只需关心产品的接口。
    扩展性高
    缺点:
    每创建一个产品,都需要具体实现类和实现工厂,使得程序中的类成倍增加,在一定程度上增加了系统的复杂度,同时增加了系统类的依赖。
    注意事项:简单类无需工厂模式。

    实现(使用枚举)

    // 枚举工厂
    package cn.domin.design.factory;
    
    public enum Factory {
    	
    	PUER("puer", new Puer()),
    	DRAGONWELL("dragonwell", new DragonWell());
    	
    	private String name;
    	private Tea tea;
    	
    	public static Tea getTeas(String name) {
    		
    		for(Factory fac: Factory.values()) {
    			if (fac.getName().equalsIgnoreCase(name)) {
    				return fac.getTea();
    			}
    		}
    		return null;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Tea getTea() {
    		return tea;
    	}
    	public void setTea(Tea tea) {
    		this.tea = tea;
    	}
    	private Factory(String name, Tea tea) {
    		this.name = name;
    		this.tea = tea;
    	}
    
    }
    // 接口
    package cn.domin.design.factory;
    
    public interface Tea {
    	
    	public void drink();
    
    }
    
    // 子类对象
    package cn.domin.design.factory;
    
    public class Puer implements Tea{
    
    	@Override
    	public void drink() {
    		System.out.println("普洱茶");
    	}
    }
    
    
    
  • 相关阅读:
    Linq技术四:动态Linq技术 -- Linq.Expressions
    74HC595的中文资料
    MessageDigest简单介绍
    gpu显存(全局内存)在使用时数据对齐的问题
    走进windows编程的世界-----windows进程
    Matlab画图-非常具体,非常全面
    php实现 合并表记录(需求是最好的老师)
    php实现求一个数的质数因子
    php课程 4-16 数组自定义函数(php数组->桶)
    jquery-3 jquery选择器
  • 原文地址:https://www.cnblogs.com/kungFuPander/p/11468336.html
Copyright © 2020-2023  润新知