java万能工厂

利用反射创建万能工厂。

(基础知识,适合自学者和初学者,自己总结的)

总体思路 + 代码

一. 先创建一个抽象类。比如:水果类 firiut。里面写一个方法。比如:吃。eat();
二. 再创建2个普通类 或者N个。比如:苹果(apple),梨(pear) 继承这个抽象类,同时继承方法。
三. 再创建一个普通类 比如:工厂(Factory) 方法名随意(如:getInstance)
四. 工厂类写一个静态方法。1.静态方法。2.水果类作为类型,传入参数 string类型(形参)比如:getInstance(String name) 。
五. 利用反射,因为是String类型,所以要返回。而且还要强转。
{ Class<?> c = Class.forName(name); return (friut) c.newInstance(); }
六. 写一个测试类 在main里面开始 new 对象。
通过水果类new一个对象,调用水果类方法。
firut f = new Factory.getInstance(“包名.类名”);
f.eat();
// 反射,类名填写什么,就调用哪个类的方法。
好处是: 再次添加水果,可以直接创建一个新类。继承方法,重写方法。最后直接调用就可以。

具体代码如下:

package com.bao.test;

/**
 * 利用反射练习万能工厂 class.forName(包名.类名);
 * @author 冒险岛
 */
class apple extends friut {
	@Override
	public void eat() {
		System.out.println("吃苹果");
	}
}
class banana extends friut {
	@Override
	public void eat() {
		System.out.println("吃香蕉");
	}
}
abstract class friut {
	public abstract void eat();
}
class Factory {
	public static friut getInstance(String name) throws Exception {
		Class<?> c = Class.forName(name);
		return (friut) c.newInstance();
	}
}
public class Test {
	public static void main(String[] args) throws Exception {
		friut f = Factory.getInstance("com.baochen.test.banana");    
		f.eat();
	}
}

QQ群:819800089 有兴趣的小伙伴可以一起学习
喵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值