Method Factory Pattern
工厂方法模式
工厂模式总共有三种
简单工厂模式
工厂方法模式
抽象工厂模式
我们先不说怎么分他们,我们先说问题!
还拿水果工厂来说,以前科技不发达,苹果就是苹果,橘子就是橘子,现在不行了,苹果的种类变多了,又是红富士,又是蓝富士的,反正不管叫啥,苹果下面有一堆各式各样的苹果了,如果我们还使用简单工厂模式的话,我们需要写一大堆if...else...判断,这样一个工厂处理的事情就太多了,不是我们希望的!
解决方法
开分厂是不错的选择,水果工厂是总部,开了俩家分工厂,一个是苹果工厂,一个是橘子工厂,分别负责生产各式各样的苹果和橘子,这样就界限分明多了。用户想要红富士,就是苹果工厂要呗!水果工厂就省心了。
package com.pattern.methodfactory; /** * 水果工厂是总部,下面可以开若干个分厂 */ public interface FruitFactory { public Fruit createFruit(String name); }
package com.pattern.methodfactory; /** * 水果接口 */ public interface Fruit { public void sayName(); }
package com.pattern.methodfactory; /** * 苹果工厂,负责生产各种苹果 */ public class AppleFactory implements FruitFactory{ @Override public Fruit createFruit(String name) { if(name==null){ return null; }else if(name.equalsIgnoreCase("redApple")){ return new RedApple(); }else if(name.equalsIgnoreCase("blueApple")){ return new BlueApple(); } return null; } }
package com.pattern.methodfactory; //红苹果 public class RedApple implements Fruit { @Override public void sayName() { System.out.println("RedApple..."); } }
package com.pattern.methodfactory; //蓝苹果 public class BlueApple implements Fruit { @Override public void sayName() { System.out.println("BlueApple..."); } }
package com.pattern.methodfactory; public class Test { public static void main(String[] args) { RedApple redApple=(RedApple) new AppleFactory().createFruit("redApple"); BlueApple blueApple=(BlueApple) new AppleFactory().createFruit("blueApple"); redApple.sayName();//RedApple... blueApple.sayName();//BlueApple... } }
到底方法工厂与简单工厂怎么区分呢,咱们可以简单地这样理解:
方法工厂中的工厂有多个,也就是说他们实现了总工厂,通过分厂获取对象只能通过构造方法即工厂的实例来创建我们需要的产品,这就是工厂方法模式。
相关推荐
5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...
Factory Method Pattern 工厂三兄弟之工厂方法模式(一) 工厂三兄弟之工厂方法模式(二) 工厂三兄弟之工厂方法模式(三) 工厂三兄弟之工厂方法模式(四) 抽象工厂模式-Abstract Factory Pattern 工厂三兄弟之...
工厂方法模式【FACTORY METHOD PATTERN】 抽象工厂模式【ABSTRACT FACTORY PATTERN】 门面模式【FACADE PATTERN】 适配器模式【ADAPTER PATTERN】 模板方法模式【TEMPLATE METHOD PATTERN】 建造...
3. 工厂方法模式 (Factory Method) 4. 单例模式 (Singleton) 5. 抽象工厂模式 (Abstract Factory) 6. 策略模式 (Strategy Pattern) 7. 适配器模式 (Adapter Pattern) 8. 模板方法模式 (Template Pattern...
pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者...
综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...
TEMPLATE METHOD PATTERN MEDIATOR PATTERN CHAIN OF RESPONSIBILITY ... OBSERVER PATTERN STRATEGY PATTERN COMMAND PATTERN VISITOR PATTERN STATE PATTERN ITERATOR PATTERN INTERPRETER PATTERN MEMENTO ...
:check_mark:工厂方法模式( Factory Method Pattern ) :memo: , :check_mark:抽象工厂模式( Abstract Factroy Pattern ) :memo: , :check_mark:建造者模式( Builder Pattern ) :memo: , :check_mark:单例...
pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者...
java 设计模式 bridge CommandPattern factoryMethod simpleFactory
综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...
pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者...
综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...
一、创建型模式 1 工厂方法模式(factory method pattern) 工厂创建对象(经典实现:很多框架初始化时都会创建一个工厂对象,用来加载资源)
2)、工厂方法型:Factory Method 3)、抽象工厂型:Abstract Factory 4)、原型:Prototype 5)、建造型:Builder 2、结构型模式:类与类之间的调用 1)、适配器:Adapter 2)、桥接模式:Bridge 3)、门面模式:...
综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...
综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...
综合实例——Bug管理系统 (3)设计模式样例(24个讲解样例程序) pattern/src/principle/liskovsubstitution//10.3.2里氏代换原则 pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/...
pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者...
pattern/src/creation/factorymethod //11.1工厂方法模式 pattern/src/creation/abstractfactory //11.2抽象工厂模式 pattern/src/creation/singleton //11.3单例模式 pattern/src/creation/builder //11.4建造者...