工厂模式

[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]
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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值