zoukankan      html  css  js  c++  java
  • Java工厂设计模式

    程序在接口和子类之间加入一个过渡类,通过此过渡类端取得接口的实例化对象,一般都会称这个过渡端为工厂类

    //=================================================
    // File Name       :	factory
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    // 接口名:Fruit
    // 属性:
    // 方法:
    interface Fruit{
    	public void eat();
    }
    
    //类名:Apple
    //属性:
    //方法:
    class Apple implements Fruit{
    
    	@Override
    	public void eat() {
    		// TODO 自动生成的方法存根
    		System.out.println("eat apple!");
    	}
    	
    }
    
    //类名:Orange
    //属性:
    //方法:
    class Orange implements Fruit{
    
    	@Override
    	public void eat() {
    		// TODO 自动生成的方法存根
    		System.out.println("eat orange!");
    	}
    	
    }
    
    //类名:Factory
    //属性:
    //方法:
    class Factory{												//定义工厂类
    	public static Fruit getInstance(String className){
    		Fruit f = null;											//定义接口对象
    		if("apple".equals(className)){			//判断是哪个类的标记
    			f = new Apple();
    		}
    		if("orange".equals(className)){			//判断是哪个类的标记
    			f = new Orange();
    		}
    		return f;
    		
    	}
    }
    
    
    //主类
    //Function        : 	工厂设计模式
    public class factory {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		Fruit f = null;										//定义接口对象
    		f = Factory.getInstance("apple");		//通过工厂取得实例
    		f.eat();													//调用方法
    	}
    
    }
    

    //=================================================
    // File Name       :	factory
    //------------------------------------------------------------------------------
    // Author          :	Common
    
    
    // 接口名:Fruit
    // 属性:
    // 方法:
    interface Fruit{
    	public void eat();
    }
    
    //类名:Apple
    //属性:
    //方法:
    class Apple implements Fruit{
    
    	@Override
    	public void eat() {
    		// TODO 自动生成的方法存根
    		System.out.println("eat apple!");
    	}
    	
    }
    
    //类名:Orange
    //属性:
    //方法:
    class Orange implements Fruit{
    
    	@Override
    	public void eat() {
    		// TODO 自动生成的方法存根
    		System.out.println("eat orange!");
    	}
    	
    }
    
    //类名:Factory
    //属性:
    //方法:
    class Factory{												//定义工厂类
    	public static Fruit getInstance(String className){
    		Fruit f = null;											//定义接口对象
    		try{
    			f = (Fruit)Class.forName(className).newInstance();	//实例化对象
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return f;
    		
    	}
    }
    
    
    //主类
    //Function        : 	工厂设计模式
    public class factory {
    
    	public static void main(String[] args) {
    		// TODO 自动生成的方法存根
    		Fruit f = null;										//定义接口对象
    		f = Factory.getInstance("Apple");		//通过工厂取得实例
    		f.eat();													//调用方法
    	}
    
    }
    

    结合属性文件的工厂模式

     

  • 相关阅读:
    使用def文件简化dll导出
    ASP.NET Core MVC 之过滤器(Filter)
    ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
    drf-apiview解读系列二
    干货分享,40个photoshop技能送给你!
    冒泡排序 深度优化
    数据结构与算法_14 _ 排序优化:如何实现一个通用的、高性能的排序函数
    数据结构与算法_12 _ 排序(下):如何用快排思想在O(n)内查找第K大元素
    数据结构与算法_13 _ 线性排序:如何根据年龄给100万用户数据排序
    数据结构与算法_11 _ 排序(上):为什么插入排序比冒泡排序更受欢迎
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5241284.html
Copyright © 2011-2022 走看看