首页 > 其他 > 详细

设计模式——工厂模式(工厂方法)

时间:2014-12-12 13:15:35      阅读:268      评论:0      收藏:0      [点我收藏+]

  上一篇我们介绍了简单工厂模式,知道它在增添新产品的时候要在工厂类里修改判断逻辑代码,这样是不好的。所以工厂方法模式改进了它,到底是怎么样改进的呢?

  我们说了写的代码当有需求变更时,我们的原则是创建新的类,在新的地方写新需求,而不要动原来的代码。所以工厂方法模式它定义了抽象工厂(接口或抽象类),每个具体工厂类负责生产一种产品,当需求里有新产品要求加入时,我们只需要创建一个新的具体产品类就OK了。看代码:

//抽象产品类:定义一类产品,接口或抽象类
public interface Animal
{
    public void run(); //接口只声明方法,不实现
}
//具体产品类1:Dog类实现Animal接口
public class Dog implements Animal
{
    public void run()
    {
         System.out.println("狗run!");
    }
}
//具体产品类2:Cat类实现Animal接口
public class Cat implements Animal
{
    public void run()
    {
         System.out.println("猫run!");
    }
}
//抽象工厂类:定义一种规范,具体实现由实现它的具体工厂类去实现
public interface AbstractFactory
{
    public Animal create();
}
//具体工厂类1:只生产dog,"狗厂"
public dogFactory implements AbstractFactory
{
    public Animal create()
    {
        return new Dog();
    }
}
//具体工厂类2:只生产cat,"猫厂"
public catFactory implements AbstractFactory
{
    public Animal create()
    {
        return new Cat();
    }
}
//主程序:要用到实例的类
public class Main()
{
    public static void main(String[] args)
    {
        AbstractFactory dogFactory = new dogFactory(); //创建“狗厂”
        Dog dog = (Dog)dogFactory .create(); //“狗厂”为我们生产狗
        catFactory = new catFactory(); //创建“猫厂”
        Cat cat = (Cat)catFactory.create(); //"猫厂"为我们生产猫   
    }
}

 

设计模式——工厂模式(工厂方法)

原文:http://www.cnblogs.com/wangerxiansheng/p/4159461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!