简单工厂模式

该代码示例展示了如何使用工厂模式动态创建`Pet`的子类对象,如`Cat`和`Dog`。`PetFactory`类根据传入的宠物类型创建相应的实例,并调用其`eat()`方法。这种设计提高了代码的灵活性和可扩展性。
摘要由CSDN通过智能技术生成
  • 简述:根据传入类型生成对应的类对象,主要用于类的创建
  • 示例:宠物工厂PetFactory用于根据宠物类型PetEnum创建Pet对象,再使用pet对象调用具体对象的eat()方法

/**
 * @author beck.yang
 * @date 2022/6/27 18:40
 * @description
 */
public class Main {
	public static void main(String[] args) {
		Pet cat = PetFactory.createPet(Cat.class);
		cat.eat();
		Pet dog = PetFactory.createPet(Dog.class);
		dog.eat();
	}
}
public class PetFactory{
	public static <T extends Pet> T createPet(Class<T> clazz){
		Pet pet = null;
		try {
			pet= (Pet) Class.forName(clazz.getName()).getDeclaredConstructor().newInstance();
		}catch (Exception e){
			System.out.println("Pet生成错误!");
			e.printStackTrace();
		}
		return (T) pet;
	}
}
/**
 * @author beck.yang
 * @date 2022/6/27 18:34
 * @description 宠物类
 */
public class Pet {
	public void eat(){
		System.out.println("Pet eat...");
	}
}
/**
 * @author beck.yang
 * @date 2022/6/27 18:29
 * @description 狗
 */
public class Dog extends Pet {
	@Override
	public void eat() {
		System.out.println("Dog eat...");
	}
}
/**
 * @author beck.yang
 * @date 2022/6/27 18:29
 * @description 猫
 */
public class Cat extends Pet {
	@Override
	public void eat() {
		System.out.println("Cat eat...");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值