`
xangqun
  • 浏览: 83128 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

工厂方法模式java源码实现(大话设计模式学习备忘录)

阅读更多
public class LeiFeng {

	public void Sweep(){
		System.out.println("扫地");
	}
	public void Wash(){
		System.out.println("洗衣");
	}
	public void BuyRice(){
		System.out.println("买米");
	}
}


public class Undergraduate extends LeiFeng {

}

public class Volunteer extends LeiFeng {

}

public interface IFactory {

	LeiFeng CreateLeiFeng();
}

public class UndergraduateFactory implements IFactory {

	@Override
	public LeiFeng CreateLeiFeng() {
		return new Undergraduate();
	}

}

public class VolunteerFactory implements IFactory {

	@Override
	public LeiFeng CreateLeiFeng() {
		return new Volunteer();
	}

}

/**
 * <h1>工厂模式</h1>
 * QS:学雷锋
 * @author xangqun
 * 
 */
public class Program {

	/**<b>工厂模式(factory)</b>
	 * 定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
	 * <br>简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。
	 * <br>工厂方法模式实现时,客户端需要决定实例化那个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行。
	 * 你想要加的功能,本来是改工厂类的,而现在是修改客户端。
	 * @param args
	 */
	public static void main(String[] args) {

		IFactory factory=new VolunteerFactory();
		LeiFeng volunteer=factory.CreateLeiFeng();
		volunteer.BuyRice();
		volunteer.Wash();
		volunteer.Sweep();
		
		IFactory factory2=new UndergraduateFactory();
		LeiFeng student=factory2.CreateLeiFeng();
		student.BuyRice();
		student.Wash();
		student.Sweep();
	}

}
分享到:
评论

相关推荐

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    工厂方法模式 抽象工厂模式 原型模式 建造者模式 单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式)...

    日历备忘录Java源码

    在本项目中,"日历备忘录Java源码" 提供了一套完整的日历应用程序的源代码,主要由四个核心文件组成:NotePad.java、CalendarPad.java、Month.java 和 Year.java。这些文件分别代表了备忘录、日历、月份和年份的功能...

    设计模式-工厂模式 Java源码

    在Java源码中实现工厂模式,通常包括以下几个步骤: 1. 定义产品接口或抽象类,描述产品的公共行为。 2. 创建具体的产品类,实现产品接口或继承抽象类,提供具体的功能。 3. 设计工厂类,可以是抽象的或具体的,根据...

    微信小程序源码 备忘录(学习版)

    微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...

    Java设计模式之工厂方法的工厂方法实现的源码

    这个源码示例非常适合学习和理解工厂方法模式,尤其是如何在Java中实现二级工厂。同时,它还展示了设计模式在实际场景中的应用,如商场促销活动的模拟,帮助开发者了解如何通过模式来提高代码的可维护性和复用性。...

    备忘录系统(源码+项目说明).zip

    备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统...

    毕业设计基于JavaWeb实现的一个备忘录系统项目源码.zip

    毕业设计基于JavaWeb实现的一个备忘录系统项目源码。难度适中,新手自己可操作 备忘录 介绍 后端部分基于Servlet、Jdbc实现. 前端部分基于Layui、jqury实现。 一个简单的前后端分离Demo,前后端交互JSON数据格式 ...

    java版大话西游源码

    《Java版大话西游源码》是一款基于Java编程语言开发的角色扮演游戏(RPG)教程,对于初学者和想要深入理解游戏开发的程序员来说,它提供了丰富的学习资源。这款教程涵盖了多线程技术和自动寻路算法等核心概念,是...

    《大话设计模式》C++实现-design-patterns-cpp.zip

    《大话设计模式》C++实现-design-patterns-cpp

    Java设计模式【之】 工厂方法模式(源码)

    * 工厂方法模式解决:满足 OCP原则,修改关闭,扩展开放 * * 比如:出现了新款咖啡类 * 旧的咖啡类代码不需要变动,只需要 * * 1.新增对应的咖啡类 * 2.修改工厂类,新增一行判断逻辑 * 3.main方法中的旧...

    尚硅谷设计模式源码笔记课件.zip

    行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式) 2) 学习目标:通过学习,学员...

    大话模式所有源码,希望对大家有帮助

    大话模式所有源码,希望对大家有帮助 对学习设计模式很有帮助

    java版本的设计模式的实现demo

    根据不同的情况,可以实现简单工厂模式、工厂方法模式或抽象工厂模式。 4. 观察者模式 观察者模式是典型的行为型模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,其所有依赖者都会得到通知并自动...

    Head First 设计模式 JAVA源码

    所有的设计模式Java实现。 第一讲:简单工厂模式 第二讲:工厂方法模式 第三讲:抽象工厂模式 第四讲:工厂模式在开发中的运用 第五讲:单例模式 第六讲:原型模式 第七讲:建造者模式 第八讲:装饰模式 第...

    java抽象工厂模式源码实例

    总的来说,这份压缩包提供了一个Java实现的抽象工厂模式实例,通过学习和理解这个例子,你可以深入掌握抽象工厂模式的原理和使用场景,这对于提升你的Java编程能力以及软件设计水平非常有帮助。在实际项目中,灵活...

    java设计模式刘伟源码

    责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、...

    基于大话设计模式的Java实现与案例辅助学习源码

    该项目为基于大话设计模式的Java实现源码库,共计117个文件,涵盖112个Java源代码文件、1个Git忽略规则文件、1个Markdown文档、1个Maven构建文件、1个命令行脚本文件以及1个XML配置文件。旨在通过丰富的案例辅助学习...

    23种设计模式java源码

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。

    Java设计模式之工厂方法的ifelse实现的源码

    在给定的"Java设计模式之工厂方法的ifelse实现"源码中,我们可以看到作者通过if...else语句来实现工厂方法的具体逻辑。通常,这种实现方式是针对不同类型的对象,根据条件判断来决定调用哪个具体类的构造函数。这种...

    设计模式之备忘录模式,内含可运行代码及详细解释

    备忘录模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在需要保护对象内部状态不被外部篡改的场景下。备忘录模式的核心思想是提供一种方法来捕获一个对象的内部状态,并在该对象之外保存这个状态...

Global site tag (gtag.js) - Google Analytics