`
sunnylocus
  • 浏览: 869584 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

Java设计模式—工厂方法(Factory Method)

    博客分类:
  • Java
阅读更多

  Template Method Pattern是在父类建立处理逻辑的大纲骨架,而在子类补充具体的处理内容,如果把模板方法用在产生对象实例方面,就是式厂方法模式
      Factory Method Pattern在父类规定对象的创建方法,但并没有深入到较具体的类名。所有具体的完整内容都放在子类,根据这个原则,我们可以大致分成产生对象实例的框架和实际产生对象实例的类两方面

    1.框架类

package com.pattern.factorymethod;

public abstract class Factory {
	public final Cup make(String shape,String color) {//产生对象的方法,用final修饰把保证在子类中不会被修改
		Cup cup = makeCup(shape);
		smearColor(cup,color);
		return cup;
	}
	protected abstract Cup makeCup(String shape); //抽象方法,制作水杯,shape参数指定水杯的外形
	protected abstract void smearColor(Cup cup,String color);  //抽象方法,给水杯涂上颜色
	
}

 2.实现类

  

package com.pattern.factorymethod;

public class CupFactory extends Factory {

	protected Cup makeCup(String shape) {
		Cup cup = new Cup();
		cup.setShape(shape);
		return cup;
	}
	protected void smearColor(Cup cup, String color) {//涂颜色
		cup.setColor(color);
	}

}

 3.水杯(实体类)

 

package com.pattern.factorymethod;

public  class Cup {
	private String shape;
	private String color;

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public String getShape() {
		return shape;
	}

	public void setShape(String shape) {
		this.shape = shape;
	}	
	
}

 

4.测试

 

package com.pattern.factorymethod;

public class Main {
	public static void main(String[] args) {
		//创建一个水杯工厂
		CupFactory factory = new CupFactory();
		Cup cup1 = factory.make("圆形", "红色");//我要一个圆形,红色的杯子 
		System.out.println("杯子造好了");
		System.out.println("形状:"+cup1.getShape());
		System.out.println("颜色:"+cup1.getColor());
		
		Cup cup2 = factory.make("方形", "蓝色");//我要一个方形,蓝色的杯子 
		System.out.println("杯子造好了");
		System.out.println("形状:"+cup2.getShape());
		System.out.println("颜色:"+cup2.getColor());
	}
}

 

结果:

    杯子造好了
    形状:圆形
    颜色:红色
    杯子造好了
    形状:方形
    颜色:蓝色

 

 

 

4
3
分享到:
评论
2 楼 sunnylocus 2008-08-30  
谢谢关注,你说的我正在努力。
1 楼 zidane0207 2008-08-29  
可以多写几篇模式的例子吗?再附上一个好的例子源码,我相信这样对学习java模式的人有很大的帮助。

相关推荐

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java设计模式之工厂模式(Factory)

    2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。下面是使用...

    设计模式 t02FactoryMethod

    设计模式 t02FactoryMethod

    [Java设计模式(第2版)(Design.Patterns.in.Java).John.Metsker

    第16章 工厂方法(factory method)模式 141 第17章 抽象工厂(abstract factory)模式 148 第18章 原型(prototype)模式 158 第19章 备忘录(memento)模式 163 第20章 操作型模式介绍 176 第21章 模板方法(template ...

    JAVA工厂模式

    GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例,两者归为一类。 两者皆可,在...

    java设计模式教程+源代码

    FactoryMethod ( 工厂方法 ) Singleton ( 单态模式 ) Builder ( 建造者模式 ) Prototype ( 原型模式 ) Adapter ( 适配器模式 ) Bridge ( 桥接模式 ) Composite ( 组合模式 ) Decorator ( 装饰模式 ) Facade ...

    java 简单工厂模式 源代码

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...

    各个设计模式的介绍Factory ,Builder

    各个设计模式的介绍,非常不错 Java与设计模式 设计模式之Factory -工厂模式设计模式之FACTORY METHOD -工厂模式設計模式之Builder -建造模式

    Java面试 java设计模式整理 单例、工厂、策略等 面试使用,学习使用

    java的设计模式大体上分为三大类: 2 设计模式遵循的原则有6个: 2 1. 工厂模式(Factory Method) 2 2. 抽象工厂模式(Abstract Factory) 3 3. 单例模式(Singleton) 4 4.建造者模式(Builder) 4 5. 原型模式...

    java设计模式期末考试选择题100道

    适合Java设计模式期末考试选择题复习,形式如下: 10.(单选题)Facade(外观)模式的意图是 正确答案: A A.希望简化现有系统的使用方法,你需要定义自己的接口 B.将一个无法控制的现有对象与一个特定借口相匹配。 C....

    在Java中应用设计模式-FactoryMethod

    在设计模式中,FactoryMethod也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一.在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是FactoryMethod,...

    java设计模式CatalogDAOFactory是典型的工厂方法

    工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory). 这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的...

    java设计模式

    java设计模式设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 一、Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二、Abstract Factory,抽象工厂:提供一个...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...

    Java设计模式,并加上个人理解

    3. 工厂方法模式 (Factory Method) 4. 单例模式 (Singleton) 5. 抽象工厂模式 (Abstract Factory) 6. 策略模式 (Strategy Pattern) 7. 适配器模式 (Adapter Pattern) 8. 模板方法模式 (Template Pattern...

    JAVA设计模式-day2.pdf

    JAVA设计模式-day2,请的行业大能讲得课程,涉及:创建模式(5种: 1、 工厂方法模式(Factory Method); 2、 抽象工厂模式; 3、 单例模式(Singleton) • 4、 建造者模式(Builder); 5、 原型模式(Prototype...

    设计模式_创建类_5种模式Java的实际例子_注释详细

    设计模式_创建类_5种模式Java的实际例子_注释详细 包括 1、单例模式(Singleton) 2、工厂方法(Factory Method) 3、抽象工厂(Abstract Factory) 4、建造模式(Builder) 5、原型模式(Prototype)

    java设计模式示例

    1.工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到具体的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的...

    JAVA设计模式

    简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出 哪一种产品类的实例。 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)...

Global site tag (gtag.js) - Google Analytics