JAVA中关于工厂方法模式和使用多个接口的疑问

再java里,有下面1个工厂方法模式:一个抽象工厂:LightCreator;内含抽象方法:CreateLight()2个具体工厂继承自上面的抽象工厂LightCreat... 再java里,有下面1个工厂方法模式:
一个抽象工厂:LightCreator;内含抽象方法:CreateLight()
2个具体工厂继承自上面的抽象工厂LightCreator;分别是BulbLightCreator和TubeLightCreator

一个抽象产品:Light;它有On和Off这2个方法
2个具体产品继承自上面的抽象产品Light;分别是BulbLight和TubeLight

使用这个模式的时候,分别用具体工厂创建具体产品就可以了;但现在我加一个继承抽象产品的具体产品:CubeLight;再来一个具体工厂CubeLightCreator;
CubeLight里有一个其它类都没有的方法:SetBeamColor();这样一来使用CubeLightCreator创建CubeLight即可

但是我的疑问是,为什么不按下面的方法做:定义多个接口,每个接口里都有一个抽象方法,父类Light里有公有的方法,每实现一个Light子类时,只需要实现不同的接口即可
比如:定义接口On,Off
BulbLight需要一直亮着不关,就实现接口On而不必实现Off接口就行
TubeLight需要所有的方法,就把On,Off,SetBeamColor这3个接口全部实现即可

需要一个新的CubeLight,它得实现SetBeamColor方法,那么只要定义一个新的接口SetBeamColor,在定义一个新的子类CubeLight继承Light,实现接口SetBeamColor即可,
和工厂方法模式比,下面这个不是更好么?
就是说,每增加新的类和 方法时,增加一个新的接口含有新的抽象方法,增加一个新类实现这个接口里的新方法就行,干嘛使用工厂方法模式呢?
这样不是更简单么?
展开
 我来答
前熙熙0Hj
2013-07-31 · TA获得超过448个赞
知道小有建树答主
回答量:203
采纳率:100%
帮助的人:110万
展开全部
但是你这样每次一个具体类都要实现很多接口。。小程序看不出来工厂模式的好处。。
追问
那关键是,我用工厂模式实现一个新类的时候,不也得在这个新类里实现很多新的方法么?也不怎么轻松啊?
假如我有1、2、3、4、5这5个接口,类A需要1和3接口,类B需要2和5接口,类C所有接口都需要,不就行了么?
再来个类D,它需要新的方法6和已有的方法3,我就再来个接口6,用接口6和接口3实现类D不就完了吗?
我觉得比工厂好用多了
追答
你可以上网看看工厂模式的好处,在这可能你是的对的,你说的那个方法比工厂模式好。但是当要创建很多对象,比如说几百个几千个,那就不一样。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式