首页 > 代码库 > 设计模式——工厂模式(工厂方法)
设计模式——工厂模式(工厂方法)
上一篇我们介绍了简单工厂模式,知道它在增添新产品的时候要在工厂类里修改判断逻辑代码,这样是不好的。所以工厂方法模式改进了它,到底是怎么样改进的呢?
我们说了写的代码当有需求变更时,我们的原则是创建新的类,在新的地方写新需求,而不要动原来的代码。所以工厂方法模式它定义了抽象工厂(接口或抽象类),每个具体工厂类负责生产一种产品,当需求里有新产品要求加入时,我们只需要创建一个新的具体产品类就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(); //"猫厂"为我们生产猫 }}
设计模式——工厂模式(工厂方法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。