`
shuofenglxy
  • 浏览: 194405 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

菜鸟硕枫设计模式系列之3 工厂方法模式

阅读更多
工厂方法模式也是一种创建对象的设计模式,属于创建型设计模式。工厂方法模式定义了对象工厂接口,抽象出了获取对象实例方法,而将具体的创建对象工作放到了具体的类创建工厂进行。

工厂方法模式类图:


         


具体实现代码示例:
工厂接口:
package factoryPattern;

public interface Factory {

	Fruit factorygetInstance();
}

具体工厂1:
package factoryPattern;

public class AppleFactory implements Factory{

	public Fruit factorygetInstance(){
		// TODO Auto-generated method stub
		return new Apple();
	}

}

具体工厂2:
package factoryPattern;

public class PearFactory implements Factory{

	public Fruit factorygetInstance(){
		// TODO Auto-generated method stub
		return new Pear();
	}
}


对象接口:
package factoryPattern;

public interface Fruit {

	String getFruitName();
}

具体对象1:
package factoryPattern;

public class Apple implements Fruit{

	@Override
	public String getFruitName(){
		// TODO Auto-generated method stub
		return "This is apple";
	}

}


具体对象2:
package factoryPattern;

public class Pear implements Fruit {

	@Override
	public String getFruitName() {
		// TODO Auto-generated method stub
		return "This is pear";
	}

}


测试类:
package factoryPattern;

public class FactoryMethodTest {

	public static void main(String[] args){
		Factory fac = new AppleFactory();
		System.out.println(fac.factorygetInstance().getFruitName());
		fac = new PearFactory();
		System.out.println(fac.factorygetInstance().getFruitName());
	}
	
}


说明:
与简单工厂模式相比,工厂方法模式将对象的创建与抽象工厂分离,当要新增类对象的创建时,只需要实现一个具体工厂和一个具体的类(新增类对象的类)即可,满足了开闭原则。缺点在于,多出了很多具体的创建对象工厂,存在一种类对象,则要有相应的对象工厂对应。
  • 大小: 23 KB
分享到:
评论

相关推荐

    菜鸟教程设计模式之工厂模式代码整理

    在这个"菜鸟教程设计模式之工厂模式代码整理"中,我们将深入探讨工厂模式的基本概念、结构以及如何在实际编程中应用。 工厂模式的核心思想是通过一个专门的工厂类来创建对象,而不是让客户端代码直接实例化具体的...

    Java设计模式菜鸟系列教程

    本教程对Java 23种设计模式进行了总结,涵盖了策略模式、观察者模式、装饰者模式、工厂方法模式、抽象工厂模式、单例模式、命令模式、适配器模式、外观模式、模板方法模式、迭代器模式、组合模式、状态模式、代理...

    菜鸟教程设计模式之工厂模式代码整理(反射机制改进版)

    在这个“菜鸟教程设计模式之工厂模式代码整理(反射机制改进版)”中,我们主要探讨的是如何利用Java的反射机制来进一步增强工厂模式的功能。 首先,理解工厂模式的基本概念。工厂模式属于创建型设计模式,它提供了...

    设计模式学习经典篇之菜鸟篇

    本资源“设计模式学习经典篇之菜鸟篇”旨在为初学者提供一个全面而通俗易懂的设计模式学习路径。 设计模式的核心在于重用已验证的解决方案,以提高代码的可读性、可维护性和可扩展性。根据GOF(Gamma, Helm, ...

    23种设计模式知识要点.pdf_设计模式_

    1. **创建型模式**:包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。这类模式关注于对象的创建过程,可以有效地控制对象的实例化,减少耦合,提高灵活性。 - 单例模式确保一个类只有一个实例,...

    设计模式(菜鸟到高手)

    设计模式(菜鸟到高手)

    23种设计模式知识要点.pdf

    它包括简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式通过一个单独的类来创建对象;工厂方法模式定义了一个创建对象的接口,但由子类决定实例化哪一个类;抽象工厂模式提供一个创建一系列相关或相互依赖...

    深入浅出设计模式(.PDF)

    创建型设计模式如单例模式、工厂方法模式、抽象工厂模式等,它们关注的是对象的创建过程,使得代码更加灵活,易于维护和扩展。结构型设计模式如适配器模式、桥接模式、装饰器模式、组合模式、外观模式、享元模式和...

    白话java23设计模式

    设计模式(Design pattern)是一套被反复使用、...本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师!

    Java设计模式(单例+工厂+策略模式)

    **策略模式** 属于行为设计模式,定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用它的客户。例如,我们可以定义一个策略接口和多个实现策略的类: ```java interface ...

    24种设计模式介绍与6大设计原则

    24种设计模式介绍与6大设计原则希望这本书的阅读者具备最基本的代码编写能力,您是一个初级的 coder,可以从中领会到怎么设计 一段优秀的代码;您是一个高级程序员,可以从中全面了解到设计模式以及 Java 的边角技术...

    设计模式笔记

    工厂方法模式、抽象工厂模式和建造者模式都是创建型模式,分别适用于不同的场景,如需要创建单一对象、一组相关对象或按步骤构建复杂对象的情况。理解并熟练运用这些模式,能够显著提升软件设计的质量和可扩展性。在...

    C#23种设计模式【完整】(亲测可用)

    工厂方法让类的实例化推迟到子类中进行。 2. 抽象工厂模式(Abstract Factory Pattern):为创建一组相关或相互依赖的对象提供一个统一的接口,而无需指定它们的具体类。 3. 单例模式(Singleton Pattern):确保...

    菜鸟学习java设计模式之单例模式

    单例模式是软件设计模式中的一种基础模式,用于确保一个类只有一个实例,并提供一个全局访问点。在Java中,单例模式的实现有很多种方式,包括懒汉式、饿汉式、双重检查锁定(DCL)等。下面我们将深入探讨这些实现...

    C嵌入式编程设计模式

    而“C嵌入式编程设计模式”这一主题,旨在探讨如何利用C语言进行高效且可靠的嵌入式系统编程,通过采用经典的设计模式来提升代码的可读性、可维护性和可扩展性。以下将详细阐述相关知识点。 1. **状态机**:状态机...

    NET 设计模式

    代码可以运行,下载这个后,建议买->《大话设计模式这本书》。来辅助学习。有很多关于C#语言有关的设计模式分别由: 1、模板方法模式 2、外观模式 3、建造者模式 ...23、工厂方法模式 24、原型模式

    Java23种设计模式总结

    设计模式(Design pattern)是一套被反复使用、...本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师!

    23种软件设计模式简述

    1. **工厂方法模式**:提供了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 2. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们...

    java常用设计模式集锦

    java常用的设计模式一个简单总结,如工厂模式、单例模式、代理模式等等。(楼主也是未入门的菜鸟,如有错误请及时联系楼主更正,谢谢!)

Global site tag (gtag.js) - Google Analytics