`
轻指飞扬
  • 浏览: 32736 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

工厂模式

    博客分类:
  • Java
阅读更多
工厂模式:“工厂”生活中是生产东西的地方,在Java世界里工厂是生产对象实例的。
工厂的作用:使代码与实现类分离,这样方便我们替换实现。
工厂的动作:选择实现——根据条件提供对应的对象实例。

这几天学习了下《Thinking in Java》中“接口”这个章节。觉得该章中关于工厂的设计例子蛮有意思的,参照它写了如下一个例子:
public interface Cycle {
	public void run();
}

public class UniCycle implements Cycle {

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("Cycle Run");
	}

}

public class BiCycle implements Cycle {

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("BiCycle Run");
	}

}

public class TriCycle implements Cycle {

	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("TriCycle Run");
	}

}

下面是工厂:
public interface CycleFactory {
	public Cycle getCycle();
}

public class UniCycleFactory implements CycleFactory {

	@Override
	public Cycle getCycle() {
		// TODO Auto-generated method stub
		return new UniCycle();
	}

}

public class BiCycleFactory implements CycleFactory {

	@Override
	public Cycle getCycle() {
		// TODO Auto-generated method stub
		return new BiCycle();
	}

}

public class TriCycleFactory implements CycleFactory {

	@Override
	public Cycle getCycle() {
		// TODO Auto-generated method stub
		return new TriCycle();
	}

}

测试代码:
public class FactoryTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		run(new UniCycleFactory().getCycle());
		run(new BiCycleFactory().getCycle());
		run(new TriCycleFactory().getCycle());
		
		run(new UniCycleFactory());
		run(new BiCycleFactory());
		run(new TriCycleFactory());
	}
	
	public static void run(Cycle cycle){
		cycle.run();
	}
	
	public static void run(CycleFactory cycleFactory){
		Cycle cycle = cycleFactory.getCycle();
		cycle.run();
	}

}

运行结果:
Cycle Run
BiCycle Run
TriCycle Run
Cycle Run
BiCycle Run
TriCycle Run


感觉这样设计工厂有点做作,可能为了强调“接口”吧 
分享到:
评论

相关推荐

    AOC电视进入酒店模式和工厂模式的方法

    测试机型:32m3095(其它机型未试,大同小异,自行测试) 测试时间:2022.06.15 进入酒店模式好处:可以设置...进入工厂模式好处:可以设置不正常的颜色,声音。恢复系统默认设置。好多功能,是英文的,我看不懂。

    简单工厂模式_简单工厂模式_

    简单工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。这种模式使得代码能够将实例化的责任封装起来,使得客户端代码无需关心具体的对象实现,只需要知道一个公共接口即可...

    qt工厂模式例子qt简单工程模式源码

    3. Qt工厂模式工程 4. Qt工厂模式例程 5. Qt工厂模式例子 6. 简单工厂模式 部分源码实例: // 奔驰工厂 class BenzFactory : public AFactory { public: ICar* CreateCar() { return new BenzCar(); } }; // ...

    设计模式之工厂模式总结

    工厂方法模式通过将产品创建的细节委托给子类,解决了简单工厂模式的扩展问题,但可能导致类的膨胀。抽象工厂模式进一步抽象,提供了一种创建一系列相关对象的机制,适用于产品族的场景,避免了类爆炸的问题。 在...

    js简单工厂模式用法实例

    简单工厂模式是软件设计领域中一种常见的创建型设计模式,它提供了一种创建对象的最佳方式。在JavaScript这种基于原型继承的动态语言中,简单工厂模式同样有着广泛的应用。简单工厂模式的核心思想是将对象的创建与...

    C#工厂模式

    **工厂模式**是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在对象创建时提供了一种封装和解耦的机制。工厂模式的核心思想是将对象的创建过程封装到一个单独的工厂类中,使得客户端代码无需关心具体...

    简单工厂模式

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了系统与具体创建对象之间的耦合度。在这个设计模式课程资料中,我们将使用Java语言来阐述和实现简单工厂模式,并在...

    Python笔记之工厂模式

    工厂模式是一种设计模式,它属于创建型模式,主要用于解决对象的创建问题。在Python中,工厂模式可以帮助我们更灵活地创建对象,同时降低代码之间的耦合度。本篇笔记将深入探讨工厂模式的三种主要实现形式:简单工厂...

    解析PHP工厂模式的好处

    工厂模式是软件工程中一种创建型设计模式,其主旨是定义一个用于创建对象的接口,让子类决定实例化哪一个类。在PHP中,工厂模式同样适用,并且能够带来许多好处。 首先,工厂模式可以增加代码的可维护性。如果项目...

    Python设计模式-工厂模式

    工厂模式有三种模式: 简单工厂模式:定义一个创建对象接口,通过参数来决定创建哪个类的实例 工厂方法模式:定义一个创建对象接口,让子类来决定创建哪个类的实例,工厂方法使一个类的实例化延迟到到其子类中 抽象...

    工厂模式代码

    工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象的创建问题。在工厂模式中,当客户端需要创建一个对象时,只需要请求工厂类来创建,而不需要关心具体的实现过程,使得代码更加模块化,...

    工厂模式 等等

    工厂模式是一种常用的设计模式,属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建对象时,我们不会对客户端暴露创建逻辑,而是引用一个共同的接口来指向新创建的对象。这种模式的主要优点是...

    Python设计模式之抽象工厂模式

    抽象工厂模式是设计模式中的一种结构型模式,它提供了一种创建对象集合的方式,这些对象来自同一族系,且它们之间具有相互依赖的关系。在Python中,我们可以利用面向对象编程来实现这一模式。抽象工厂模式的主要目的...

    java 反射工厂模式

    Java反射和工厂模式是两种非常重要的编程概念,它们在软件设计和实现中起着关键作用。反射机制允许我们在运行时动态地获取类的信息并操作对象,而工厂模式是一种设计模式,它提供了一种创建对象的最佳方式,使得代码...

    设计模式-工厂模式.pdf

    ### 设计模式之工厂模式详解 #### 一、概述 工厂模式是一种常用的设计模式,属于创建型模式之一。它的核心思想在于将对象的创建过程封装起来,并通过特定的工厂类来实现对象的创建,以此达到降低系统耦合度的目的...

    工厂模式demo

    工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象创建的问题。在工厂模式中,我们创建对象时不会对客户端暴露创建逻辑,而是引入一个中间层,即工厂,来负责对象的创建。这样做的好处是...

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

    **工厂模式**是一种常见的设计模式,它在Java中被广泛应用于创建对象实例。工厂模式的主要目的是将对象的创建过程封装起来,使得代码更加灵活且易于维护。通过使用工厂模式,我们可以将实例化对象的责任从客户端代码...

    C#基于简单工厂模式实现的计算器功能示例

    C#基于简单工厂模式实现的计算器功能示例 本文主要介绍了C#基于简单工厂模式实现的计算器功能,通过实例形式分析了C#使用工厂模式的数值运算相关操作技巧。 一、简单工厂模式的概念 简单工厂模式是一种常用的设计...

Global site tag (gtag.js) - Google Analytics