工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪
一个类。工厂方法使一个类的实例化延迟到其子类。
工厂方法模式结构为:
public abstract class AbstractFacotry { public abstract Fruit productionFruit(); }
public class AppleFactory extends AbstractFacotry{ @Override public Fruit productionFruit() { return new Apple("苹果"); } }
public class OrangeFactory extends AbstractFacotry{ @Override public Fruit productionFruit() { return new Orange("橘子"); } }
public class PearFactory extends AbstractFacotry{ @Override public Fruit productionFruit() { // TODO Auto-generated method stub return new Pear("梨"); } }
public class Apple extends Fruit { public Apple(String name,String colour) { this.name = name; this.colour = colour; } public Apple(String name) { this.name = name; } @Override public void showName() { System.out.println("水果名称为:"+this.name); } @Override public void showColour() { System.out.println("水果名颜色:"+this.colour); } @Override public void setColour(String colour) { this.colour = colour; } }
public class Orange extends Fruit { public Orange(String name, String colour) { this.name = name; this.colour = colour; } public Orange(String name) { this.name = name; } @Override public void showName() { System.out.println("水果名称为:"+this.name); } @Override public void showColour() { System.out.println("水果名颜色:"+this.colour); } @Override public void setColour(String colour) { this.colour = colour; } }
public class Pear extends Fruit { public Pear(String name, String colour) { this.name = name; this.colour = colour; } public Pear(String name) { this.name = name; } @Override public void showName() { System.out.println("水果名称为:"+this.name); } @Override public void showColour() { System.out.println("水果名颜色:"+this.colour); } @Override public void setColour(String colour) { this.colour = colour; } }
public static void main(String[] args) { AbstractFacotry af = new AppleFactory(); Fruit productionFruit = af.productionFruit(); productionFruit.setColour("red"); productionFruit.showName(); productionFruit.showColour(); AbstractFacotry pear = new PearFactory(); Fruit pear1 = pear.productionFruit(); pear1.setColour("yellow"); pear1.showName(); pear1.showColour(); }
相关推荐
基础知识讲解分析+工厂模式实例代码以及分析,浅显易懂,不会辜负你的三分
用java语言实现工厂方法模式和抽象工厂模式
Java实现的工厂模式,抽象工厂,工厂方法模式
1.简单工厂模式(simple factory)2.工厂方法模式(factory mathoud)3.抽象工厂模式(abstract factory)
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
工厂方法模式java实例demo,来自刘伟老师的《设计模式》一书.rar
java设计模式 工厂方法模式uml类图,一张图就让你秒懂工厂方法模式
JAVA工厂模式工厂方法模式.pdf
例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式
初学者适用,工厂方法模式的Java示例程序,已打包为VS2005的J#工程。
工厂方法模式和简单工厂模式在结构上的不同是很明显的。工厂方法模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。工厂方法模式可以允许很多具体工厂类从抽象工厂类中将创建行为继承下来,从而...
基于Java实现的23种设计模式Demo,抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式、外观模式、适配器模式等 Java设计模式共有23种,分别为:抽象工厂模式、建造模式、工厂方法模式、原型模式、单例模式...
工厂方法模式定义了一个抽象的工厂接口,具体的工厂类负责创建对应的产品对象
java工厂模式 java工厂模式 java工厂模式
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...
设计模式,工厂方法模式源文件,基本源代码
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂
JAVA 设计模式: 工厂模式 代理模式 迭代模式 责任链模式 源码