2.可以使客户端不知道声明的类是什么?那你连你自己要调用哪个类都不知道,那可能吗?而且你不知道是哪个类你调它干嘛?肯定知道有什么用才调啊应该这样理解:客户端不用像传统的方法那样import具体的类,而可以通过类的名称直接得到需要的类,这样你可以把类的名称写在例如配置文件里面,以后系统需要扩充的时候,就可以只要修改配置文件,而不用去修改客户端的类。
解决方案 »
- 基于淘宝的用户行为分析
- Endpoint.publish发布服务问题
- AxisFault faultCode: 错误 急 难道没人解决的了? 大家帮我看看 谢谢
- csv文件里能写入图片么,,救我!!!!
- Java里面如何调入oracle存储过程
- WebLogic7.0下怎样打开tif文件?
- 求教tomcat异常
- 女子请教各位字符串问题:怎样将ABCDEFG转换成AB-CD-EFG,再由AB-CD-EFG转换成ABCDEFG?
- 用SOAP传输一个Float[]的问题
- logback+SLF4J 没打印日志
- 关于spring的Interceptor
- 哪位大哥能给小弟解释一下“委托”“委派”“代理”几个名词?
fruit b=new orange();
改为:
fruit a=concreteCretor1.factor()
fruit a=concreteCretor2.factor()一样得知道concreteCretor1=apple,concreteCretor2=orange,这个首先我觉得客户是需要知道具体类是什么的,不然不知道调哪个,其次,当加入新类时,客户端不是下面这样的吗?简单工厂模式还能说在配置里加,但工厂方法又怎么去配置?fruit c=new grape();这个和下面有什么区别?fruit a=concreteCretor3.factor()
2. 配置的写法是有一定的规则的。一般是写类的全名,带包名一起。用途是反射,LZ反射要是都没搞明白那么工厂模式是肯定理解的不透彻的。
3. 一般都有默认的工厂,如果你选择生产苹果,那么先要配置好苹果,set苹果,如果要香蕉当然要先set香蕉。这也是为什么一般工厂模式中产生工厂都会有两个方法,一个是没有参数的,一个是传String的。