zoukankan      html  css  js  c++  java
  • 02.创建型————工厂方法模式

    package Create.b.FactoryMethod;
    
    //业务接口
    public interface Salary {
    	void calcSalary();
    }
    

      

    package Create.b.FactoryMethod;
    
    //业务实现类
    public class HeBeiSalary implements Salary {
    
    	@Override
    	public void calcSalary() {
    		// TODO Auto-generated method stub
    		System.out.println("开始计算河北子公司的薪资!");
    	}
    
    }
    

      

    package Create.b.FactoryMethod;
    
    //业务实现类
    public class GuangDongSalary implements Salary {
    
    	@Override
    	public void calcSalary() {
    		// TODO Auto-generated method stub
    		System.out.println("开始计算广东子公司的薪资!");
    	}
    
    }
    

      

    package Create.b.FactoryMethod;
    
    //工厂接口
    public interface Factory {
    	Salary createSalary();
    }
    

      

    package Create.b.FactoryMethod;
    
    //业务实现类工厂类
    public class HeBeiFactory implements Factory {
    
    	@Override
    	public Salary createSalary() {
    		// TODO Auto-generated method stub
    		return new HeBeiSalary();
    	}
    
    }
    

      

    package Create.b.FactoryMethod;
    
    
    //业务实现类工厂类
    public class GuangDongFactory implements Factory{
    
    	@Override
    	public Salary createSalary() {
    		// TODO Auto-generated method stub
    		return new GuangDongSalary();
    	}
    
    }
    

      

    package Create.b.FactoryMethod;
    
    
    //业务调用类
    public class Client {
    	public static void main(String[] args) {
    		Factory fa = new HeBeiFactory();
    		Salary sa = fa.createSalary();
    		sa.calcSalary();
    		
    		fa = new GuangDongFactory();
    		sa = fa.createSalary();
    		sa.calcSalary();
    	}
    }
    

      

    优点:每个实现类均有对象的工厂类

    缺点:如果有新的实现类则需要添加新的工厂类,添加编写代码工作量

  • 相关阅读:
    spring下配置shiro
    web.xml文件配置说明
    spring中配置缓存—ehcache
    applicationContext.xml配置简介
    spring task定时器的配置使用
    spring配置数据库连接池druid
    Mybatis使用pageHelper步骤
    mybatis-generator和TKmybatis的结合使用
    PHP删除一个目录下的所有文件,不删除文件夹
    nodejs学习
  • 原文地址:https://www.cnblogs.com/ciade/p/5095201.html
Copyright © 2011-2022 走看看