1.简单工厂就是根据你的条件,由一个工厂类来决定生长什么冬冬,
例如我们定义一个水果类,然后定义两个子类,苹果和香蕉,原来我们如果想创建苹果和香蕉的话,我们的操作方式是
apple a=new apple();
banna b=new banna();
如果有10种水果,我们要写十次,很烦.
现在,我们想用一个函数来决定何时生成苹果,何时生成香蕉,
思路是用字符串作为参数传到某个函数里,这个函数类似如下.
public fruit makefruit(string fruitname)//makefruit 就是一个工厂了,这个工厂返回的就是水果类.
if fruitname='a' then return new apple();
if fruitname='b' then return new banna();
这样我们就可以根据字符串来返回我们需要的子类了.
如果在工厂里,这种员工我肯定会发他高工资,因为他什么都会做,
让他生产什么,他就生产什么,,但是这种方法带来的弊端也是显然的.
makefruit本身很复杂,不具备良好的扩展性,每加个类都要,写判断语句,来生成相应的类,这样人们就想了,其它的方法了,什么方法呢,
且听下回分解.
例如我们定义一个水果类,然后定义两个子类,苹果和香蕉,原来我们如果想创建苹果和香蕉的话,我们的操作方式是
apple a=new apple();
banna b=new banna();
如果有10种水果,我们要写十次,很烦.
现在,我们想用一个函数来决定何时生成苹果,何时生成香蕉,
思路是用字符串作为参数传到某个函数里,这个函数类似如下.
public fruit makefruit(string fruitname)//makefruit 就是一个工厂了,这个工厂返回的就是水果类.
if fruitname='a' then return new apple();
if fruitname='b' then return new banna();
这样我们就可以根据字符串来返回我们需要的子类了.
如果在工厂里,这种员工我肯定会发他高工资,因为他什么都会做,
让他生产什么,他就生产什么,,但是这种方法带来的弊端也是显然的.
makefruit本身很复杂,不具备良好的扩展性,每加个类都要,写判断语句,来生成相应的类,这样人们就想了,其它的方法了,什么方法呢,
且听下回分解.