您的位置:首页 > 其它

工厂模式—接口

2015-07-14 17:09 232 查看
接口:

package test.designpattern.testinterface;

public interface IFruit {
	String getFruitName();
}

实现类:

package test.designpattern.testinterface.impl;

import test.designpattern.testinterface.IFruit;

public class Apple implements IFruit {

	@Override
	public String getFruitName() {
		// TODO Auto-generated method stub
		return "我是苹果";
	}
}




package test.designpattern.testinterface.impl;

import test.designpattern.testinterface.IFruit;

public class Pear implements IFruit {

	@Override
	public String getFruitName() {
		// TODO Auto-generated method stub
		return "我是梨";
	}

}




工厂类:

package test.designpattern.testinterface;

import test.designpattern.testinterface.impl.Apple;
import test.designpattern.testinterface.impl.Banana;
import test.designpattern.testinterface.impl.Pear;

public class FruitFactory {
	public static IFruit getInstence(String str)
			throws Exception{
		IFruit ifr = null;
		try {
			if(str.equals( "apple")){
				ifr = new Apple();				
			}else if(str.equals( "pear")){
				ifr = new Pear();				
			}else if(str.equals( "banana")){
				ifr = new Banana();				
			}			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ifr;	
	}
	
}


测试类:



package test.designpattern.testinterface;

import test.designpattern.testinterface.impl.Apple;

public class TestInterfaceMain {
	public static void main(String args[]){
		String child = "apple";	
		String fruitName = "";
		try {
			fruitName = FruitFactory.getInstence(child).getFruitName();	
			System.out.println("Fruit's Name:"+fruitName);	
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

结果:

Fruit's Name:我是苹果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: