[size=medium]前一段时间学习了工厂模式,觉得挺有用的
上网搜资料得知设计模式真心很多!大概有23种!简单的可以分为三类:
创建型模式、结构型模式、行为型模式
而工厂模式则属于创建型模式![/size]
[size=large]一 我们为什么需要使用工厂模式?[/size]
[size=medium]1.当一个类不知道它所必须创建的对象的类的时候。
2.当一个类希望由它的子类来指定它所创建的对象的时候。
我们现在将创建一个动物工厂!
[img]http://dl2.iteye.com/upload/attachment/0089/9799/fbcec11c-fcdc-38c0-b930-b209ea2cdbfb.jpg[/img]
首先,我们知道所有的动物都具有“吃”这个行为,但是每种动物吃的具体方法和食物不同
因此就需要定义一个接口,接口的特性是需要子类实现其中的抽象方法!---->由此我们
就能将动物细分为猫,狗等。实现他们具体吃的方法。[/size]
[size=medium]但这样做并没有用到工厂模式,这样是不行的。工厂模式见名知义,是制造产品的!我们现
在是一家动物工厂,那么各种动物就是我们的产品!我们需要在工厂中制造出来返回给用户
---->由此分析得出我们需要一个工厂类,来生产创造动物!由上面的分析可知:用户只需
要生产好的动物,他不需要知道他是怎么生产的!因此就需要static。[/size]package
[size=medium]这样用户就可以使用了[/size]
[img]http://dl2.iteye.com/upload/attachment/0089/9801/74defe50-d653-33bd-a420-f24bcbc01071.jpg[/img]
[size=medium]小结一下:
我觉得工厂就是你要什么去到工厂里拿就好了,工厂负责生产,你除了使用什么都不用管.
统一管理对象的创建过程,具体调用者不负责创建对象,当要创建的对象发生改变时,只需要修改工厂,而不需要修改调用者。
工厂模式针对的是多态也就是说,你的类型如果可能有很多派生,使用工厂模式比较方便。
使用工厂模式可以方便的更改应用程序,方便扩展。[/size]
上网搜资料得知设计模式真心很多!大概有23种!简单的可以分为三类:
创建型模式、结构型模式、行为型模式
而工厂模式则属于创建型模式![/size]
[size=large]一 我们为什么需要使用工厂模式?[/size]
[size=medium]1.当一个类不知道它所必须创建的对象的类的时候。
2.当一个类希望由它的子类来指定它所创建的对象的时候。
我们现在将创建一个动物工厂!
[img]http://dl2.iteye.com/upload/attachment/0089/9799/fbcec11c-fcdc-38c0-b930-b209ea2cdbfb.jpg[/img]
首先,我们知道所有的动物都具有“吃”这个行为,但是每种动物吃的具体方法和食物不同
因此就需要定义一个接口,接口的特性是需要子类实现其中的抽象方法!---->由此我们
就能将动物细分为猫,狗等。实现他们具体吃的方法。[/size]
package com20130914工厂模式;
public interface Animal {
public void eat();
}
public class Cat implements Animal{
@Override
public void eat() {
System.out.println("I like fish!");
}
}
public class Dog implements Animal{
@Override
public void eat() {
System.out.println("I like bone!");
}
}
[size=medium]但这样做并没有用到工厂模式,这样是不行的。工厂模式见名知义,是制造产品的!我们现
在是一家动物工厂,那么各种动物就是我们的产品!我们需要在工厂中制造出来返回给用户
---->由此分析得出我们需要一个工厂类,来生产创造动物!由上面的分析可知:用户只需
要生产好的动物,他不需要知道他是怎么生产的!因此就需要static。[/size]package
com20130914工厂模式;
public class AnimalFactory {
public static Animal createDog(){
return new Dog();
}
public static Animal createCat(){
return new Cat();
}
}
[size=medium]这样用户就可以使用了[/size]
public class Test {
public static void main(String[] arg){
Animal animal1=AnimalFactory.createDog();
Animal animal2=AnimalFactory.createCat();
animal1.eat();
animal2.eat();
}
}
[img]http://dl2.iteye.com/upload/attachment/0089/9801/74defe50-d653-33bd-a420-f24bcbc01071.jpg[/img]
[size=medium]小结一下:
我觉得工厂就是你要什么去到工厂里拿就好了,工厂负责生产,你除了使用什么都不用管.
统一管理对象的创建过程,具体调用者不负责创建对象,当要创建的对象发生改变时,只需要修改工厂,而不需要修改调用者。
工厂模式针对的是多态也就是说,你的类型如果可能有很多派生,使用工厂模式比较方便。
使用工厂模式可以方便的更改应用程序,方便扩展。[/size]