java 反射和 工厂模式结合使用

本文探讨了在项目开发中遇到的工厂类过大且修改不便的问题,提出通过结合使用接口、类实现、工厂类及反射机制来简化对象创建流程的方法。详细介绍了如何创建接口、具体实现类,以及工厂类的实现方式,最后讨论了配合配置文件优化工厂方法的可行性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写项目的时候出现了工厂类比较庞大的后果,而且每次增加对象都要改变工厂类十分不方便,后来整改成和反射结合。

1、首先创建接口类

public interface Animal{
 public void sundes();
}

2、创建动物类实现接口

public class Dog implements Animal{
  @Override
  public void Sounds(){
     system.out.print("旺旺");
  }
}
public class Cat implements Animal{
  @Override
  public void Sounds(){
     system.out.print("喵喵");
  }
}

3、创建工厂类

public class Factory {
	public static Animal getInstance(String AnimalName){
		Animal a = null;
		try {
			a = (Animal ) Class.forName(AnimalName).newInstance();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return a;
	}

4、调用工厂方法

public class FactoryImp{
   pubic static void main(String[] arg){
     Animal  animal =  Factory.getInstance("dog");
     animal.sundes();
}

}

这样就不需要改动工厂类了。不过Factory.getInstance需要传入动物类的全路径,这样也是比较麻烦的,不过我们可以配合配置文件实现




 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值