`

易学设计模式八 工厂方法(Factory Method)

阅读更多
工厂方法模式的用意是定义一个创建产品对象的工厂,将实际的创建工作推迟到子类中。




修改上节中简单工厂模式

抽象工厂
public interface FruitGardener {
	public Fruit factory();
}

具体工厂
public class AppleGardener implements FruitGardener {
	public Fruit factory() {
		return new Apple();
	}
}


public class GrapeGardener implements FruitGardener {
	public Fruit factory() {
		return new Grape();
	}
}


public class StrawberryGardener implements FruitGardener {
	public Fruit factory() {
		return new Strawberry();
	}
}


其他类请参照,上一篇博客,简单工厂模式

测试类
public class Client {
	public static void main(String[] args) {	
		FruitGardener ag = new AppleGardener();
		Fruit apple = ag.factory();
		apple.plant();
		apple.grow();
		apple.harvest();
		FruitGardener gg = new GrapeGardener();
		Fruit grape = gg.factory();
		grape.plant();
	}
}


输出结果:

Apple has been planted
Apple is growing
Apple has been havested
Grape has been planted


URL 与 URLConnection的应用
URL hao360 = new URL("http://hao.360.cn/");
URLConnection hc = hao360.openConnection();
URLConnection是一个抽象类,所以hao360.openConnection()返回的一定是URLConnection的子类,所以openConnection()是工厂方法。
public class URLConnectionReader {

	public static void main(String[] args) throws Exception {
		URL hao360 = new URL("http://hao.360.cn/");
		URLConnection hc = hao360.openConnection();
		BufferedReader in = new BufferedReader(
				new InputStreamReader(hc.getInputStream()));
		String inputLine;
		while((inputLine = in.readLine()) != null) {
			System.out.println(inputLine);
		}
		in.close();
	}
}
  • 大小: 61.2 KB
分享到:
评论

相关推荐

    易学设计模式

    1. **创建型模式**:这类模式主要关注对象的创建过程,包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。单例模式确保一个类只有一个实例,而工厂方法模式则允许类推迟实例化到其子类。抽象工厂...

    易学设计模式源码光盘

    1. **创建型模式**:这类模式关注对象的创建过程,如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们提供了一种...

    [源代码] 《易学 设计模式》 随书源代码

    第04章 精益求精:工厂方法模式 (FactoryMethod) 第05章 再接再厉:抽象工厂模式 (AbstractFactory) 第06章 孜孜不倦:创建者模式 (Builder) 第07章 照猫画虎:原型模式 (Prototype) 第08章 独一无二:单例模式 ...

    易学_设计模式_郭志学

    创建型模式涉及到对象的实例化过程,如单例模式、工厂方法模式、抽象工厂模式等;结构型模式关注如何组合对象和类以形成更大的结构,如适配器模式、装饰器模式、代理模式等;行为型模式主要关注对象之间的职责分配和...

    一个Java书籍《易学设计模式》全部源码.rar

    《Java易学设计模式》全书的随书源码,每一个章节一个压缩包,分别为:工厂模式、命令模式、组合模式、模板方法模式、工厂方法模式例子、状态模式例子、迭代器模式、解释器模式、享元模式、桥模式、装饰模式、代理...

    java-易学设计模式

    1. 创建型模式:这类模式主要关注对象的创建过程,如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。单例模式确保一个...

    设计模式例子文档,简单易学

    1. 创建型模式:这类模式主要关注对象的创建过程,例如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。它们提供了一种...

    《易学设计模式》源码

    行为型模式则涵盖策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式和解释器模式,主要关注对象之间的交互和职责分配。 在《易学设计模式》源码中,我们能...

    Java《易学设计模式》随书源码.rar

    Java《易学设计模式》随书源代码,书中介绍了多种JAva模式的方法和使用,比如简单工厂模式、工厂方法模式例子、状态模式例子、迭代器模式、解释器模式、命令模式、模板方法模式、享元模式、桥模式、代理模式、适配器...

    介绍设计模式的代码

    工厂方法模式则通过抽象工厂接口来创建对象,使得具体创建哪个类的对象可以在运行时决定。建造者模式用于构建复杂对象,通过一步一步构建过程,避免了构造函数参数过多的问题。 适配器模式将两个不兼容的接口转换为...

    avascript设计模式.pdf

    ### JavaScript 设计模式知识点梳理 #### 1. JavaScript语言概述 JavaScript是目前应用最广泛的编程语言之一,几乎所有的现代浏览器都内置了解释器。它在我们的日常生活中扮演着重要角色,支持着各种网站的界面和...

    Java《易学设计模式》全书源代码

    摘要:Java源码,书籍源码,随书源码,设计模式,Java电子书 运行环境:Java/Eclipse

    head first 设计模式(中文版) part3 总共三部分

    资源比较大,只好分来传输,否则传不上去。设计模式中的经典书籍,强烈建议看这本书来学习设计模式。gof的设计模式太抽象了,这本书非常易学。

    精通python设计模式

    本书涵盖了多种经典的设计模式,如单例模式、工厂模式、观察者模式、装饰器模式、策略模式、代理模式等。单例模式确保一个类只有一个实例,常用于配置管理或线程控制;工厂模式提供了一种创建对象的最佳方式,避免了...

    Python常用设计模式源码

    12. **模版方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 以上设计模式的源码示例可以帮助开发者更好地理解并应用这些模式...

    boaPHP是一款灵活易用的配置式PHP框架,MVC设计模式,完全面向对象,易学易用、便于快速开发

    boaPHP是一款免费开源、灵活易用的配置式PHP框架,MVC设计模式,完全面向对象,易学易用、便于快速开发

Global site tag (gtag.js) - Google Analytics