反射机制和工厂设计模式结合使用
程序员文章站
2024-01-20 16:47:16
...
反射机制和工厂设计模式结合使用
1.Furit接口
package factory.com.util;
public interface Furit {
public void toEat();
}
2.Banana类
package factory.com.util;
public class Banana implements Furit{
public void toEat(){
System.out.println("吃香蕉!!");
}
}
3.Apple类
package factory.com.util;
public class Apple implements Furit {
public void toEat(){
System.out.println("吃苹果!");
}
}
4.Factory类
package factory.com.util;
public class Factory {
public static Furit getFurit(String className){
Furit furit = null;
try {
//相当创建对象 这就是反射机制
furit = (Furit) Class.forName(className).newInstance();
}catch (Exception e) {
e.printStackTrace();
}
return furit;
}
}
5.测试类
package factory.com.util;
public class Test {
public static void main(String[] args) {
/*
* 工厂设计模式[]
* 如果添加一个子类,只需要继承父类接口
* 再改需要改这里的实力类,就ok了
*
* */
Furit fu= Factory.getFurit("factory.com.util.Apple");
fu.toEat();
}
}
6.添加一个 Orange 子类
package factory.com.util;
public class Orange implements Furit {
@Override
public void toEat() {
// TODO Auto-generated method stub
System.out.println("吃橙子!");
}
}
看看这篇
上一篇: python 画图显示中文
推荐阅读
-
反射机制和工厂设计模式结合使用
-
使用反射和泛型实现简单工厂模式
-
java反射机制---工厂设计模式的进化
-
Mybaits 源码解析 (十一)----- 设计模式精妙使用:静态代理和动态代理结合使用:@MapperScan将Mapper接口生成代理注入到Spring
-
Ruby中使用设计模式中的简单工厂模式和工厂方法模式
-
Mybaits 源码解析 (十一)----- 设计模式精妙使用:静态代理和动态代理结合使用:@MapperScan将Mapper接口生成代理注入到Spring
-
简单工厂模式和策略模式结合使用php
-
简单工厂模式和策略模式结合使用php
-
Ruby中使用设计模式中的简单工厂模式和工厂方法模式
-
Java学习之:使用反射实现工厂设计模式