设计模式之工厂设计模式简单实践

1.工厂类


package com.git.base.designpatterns.factory;
/**
 * 
 * <p>Title: PetFactory.java</p>
 * <p>Description:工厂类设计模式 生产各种宠物实例</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:19:44
 * @version 1.0
 */
public class PetFactory {

	
	public  static Pet getIntance(String className){
		
		Pet pet = null;
		if("dog".equals(className)){
			pet = new Dog();
		}else if("cat".equals(className)){
			pet = new Cat();
		}else{
			pet = new DefaultPet();
		}
		return pet;
	}
	
}

2.生产的产品类接口


package com.git.base.designpatterns.factory;
/**
 * 
 * <p>Title: Pet.java</p>
 * <p>Description:宠物类</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:20:56
 * @version 1.0
 */
public interface Pet {

	public String sayName();
}


3.具体的工厂要生产的产品类


package com.git.base.designpatterns.factory;

/**
 * 
 * <p>Title: Dog.java</p>
 * <p>Description:宠物狗类</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:22:48
 * @version 1.0
 */
public class Dog implements Pet {

	
	@Override
	public String sayName() {
		
		return "my name is longlong ,what's your name?";
	}

}


package com.git.base.designpatterns.factory;

public class Cat implements Pet {

	@Override
	public String sayName() {
		
		return "hi,my name is longmao.";
	}

}


package com.git.base.designpatterns.factory;
/**
 * 
 * <p>Title: DefaultPet.java</p>
 * <p>Description:默认的宠物类</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:28:10
 * @version 1.0
 */
public class DefaultPet implements Pet {

	@Override
	public String sayName() {
		return "You want me to call what name? ";
	}

}


4.运行测试类


package com.git.base.designpatterns.factory;
/**
 * 
 * <p>Title: PetTest.java</p>
 * <p>Description:宠物测试类</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:30:54
 * @version 1.0
 */
public class PetTest {

	
	public static void main(String[] args) {
		
		Pet pet1 = PetFactory.getIntance("");
		System.out.println(pet1.sayName());
		
		Pet pet2 = PetFactory.getIntance("dog");
		System.out.println(pet2.sayName());
		
		Pet pet3 = PetFactory.getIntance("cat");
		System.out.println(pet3.sayName());
	}
}









你可能感兴趣的:(设计模式,工厂设计模式)