介绍
这篇文章主要介绍”反射与工厂设计模式的特点有哪些”,在日常操作中,相信很多人在反射与工厂设计模式的特点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“反射与工厂设计模式的特点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
反射与工厂设计模式
如果要想进行对象的实例化处理,除了可以使用关键字新之外,还可以使用反射机制来完成,于是此时一定会思考一个问题:为什么要提供有一个反射的实例化?那么到底是使用关键字新的,还是使用反射呢?
如果要想更好的理解此类问题,最好的解决方案就是通过<强>工厂设计模式强>来解决。
<强>工厂模式的最大特点:强>客户端的程序类不直接牵扯到对象的实例化管理,只与接口发生关联,通过工厂类获取指定接口的实例化对象。
<强>范例:强>传统的工厂设计模式
interface IMessage {public void 发送();,,//消息发送}class NetMessage implements IMessage {public void 发送(),{ ,,,,,,,System.out.println(“【网络消息发送】;www.mldn.cn"); ,,,} }public class  JavaAPIDemo {public static  void main (String [], args), throws Exception { ,,,,,,,,,,,IMessage msg =, new NetMessage();,,//如果直接实例化则一定会有耦合问题} }
在实际的开发中,接口的主要作用是为不同层提供有一个操作的标准。但是如果此时直接将一个子类设置为接口实例化操作,那么一定会有耦合问题,所以使用了工厂设计模式来解决此问题。
<强>范例:>强利用工厂设计模式解决
public class JavaAPIDemo {public static  void main (String [], args), throws Exception { ,,,,,,,IMessage msg =, Factory.getInstance (“netmessage"); ,,,,,,,msg.send();,,,//就缦⒎⑺汀縲ww.mldn.cn} }interface IMessage {void 发送();,,//消息发送}class NetMessage implements IMessage {public void 发送(),{ ,,,,,,,System.out.println(“【网络消息发送】;www.mldn.cn"); ,,,} {}class 工厂private 工厂(){},,//没有产生实例化对象的意义,所以构造方法私有化public static IMessage getInstance (String className){如果(“netmessage" .equalsIgnoreCase(名称)){return new  NetMessage (); ,,,,,,,}return 零; ,,,} }