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源码" 提供了一套完整的日历应用程序的源代码,主要由四个核心文件组成:NotePad.java、CalendarPad.java、Month.java 和 Year.java。这些文件分别代表了备忘录、日历、月份和年份的功能...
微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...
微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小...
责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、...
这个源码示例非常适合学习和理解工厂方法模式,尤其是如何在Java中实现二级工厂。同时,它还展示了设计模式在实际场景中的应用,如商场促销活动的模拟,帮助开发者了解如何通过模式来提高代码的可维护性和复用性。...
基于Java语言的经典设计模式实现源码学习是一个综合性的学习资源,涵盖了Java领域内广为人知的设计模式。设计模式是软件工程中用于解决常见问题的一套被反复使用、多数人知晓、代码编写经验的总结。Java作为一门成熟...
备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统(源码+项目说明).zip备忘录系统...
毕业设计基于JavaWeb实现的一个备忘录系统项目源码。难度适中,新手自己可操作 备忘录 介绍 后端部分基于Servlet、Jdbc实现. 前端部分基于Layui、jqury实现。 一个简单的前后端分离Demo,前后端交互JSON数据格式 ...
例如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链模式(Chain of Responsibility)、命令模式(Command)、备忘录模式...
《Java版大话西游源码》是一款基于Java编程语言开发的角色扮演游戏(RPG)教程,对于初学者和想要深入理解游戏开发的程序员来说,它提供了丰富的学习资源。这款教程涵盖了多线程技术和自动寻路算法等核心概念,是...
根据不同的情况,可以实现简单工厂模式、工厂方法模式或抽象工厂模式。 4. 观察者模式 观察者模式是典型的行为型模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,其所有依赖者都会得到通知并自动...
《大话设计模式》C++实现-design-patterns-cpp
* 工厂方法模式解决:满足 OCP原则,修改关闭,扩展开放 * * 比如:出现了新款咖啡类 * 旧的咖啡类代码不需要变动,只需要 * * 1.新增对应的咖啡类 * 2.修改工厂类,新增一行判断逻辑 * 3.main方法中的旧...
所有的设计模式Java实现。 第一讲:简单工厂模式 第二讲:工厂方法模式 第三讲:抽象工厂模式 第四讲:工厂模式在开发中的运用 第五讲:单例模式 第六讲:原型模式 第七讲:建造者模式 第八讲:装饰模式 第...
总的来说,这份压缩包提供了一个Java实现的抽象工厂模式实例,通过学习和理解这个例子,你可以深入掌握抽象工厂模式的原理和使用场景,这对于提升你的Java编程能力以及软件设计水平非常有帮助。在实际项目中,灵活...
该项目为基于大话设计模式的Java实现源码库,共计117个文件,涵盖112个Java源代码文件、1个Git忽略规则文件、1个Markdown文档、1个Maven构建文件、1个命令行脚本文件以及1个XML配置文件。旨在通过丰富的案例辅助学习...
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。
该项目是一个基于《大话设计模式》的Java设计模式学习源码实战,包含41个文件,其中36个为Java源文件,4个为Markdown文档,以及1个LICENSE文件。通过实际编码实践,帮助开发者深入理解并掌握设计模式的应用。
标签“源码”和“工具”表明这个话题可能涉及实际代码实现和一些辅助工具的使用,例如使用备忘录模式来实现撤销/重做功能时,可能需要用到队列数据结构来管理备忘录对象。 在压缩包文件"Design"中,可能包含了与...
在给定的"Java设计模式之工厂方法的ifelse实现"源码中,我们可以看到作者通过if...else语句来实现工厂方法的具体逻辑。通常,这种实现方式是针对不同类型的对象,根据条件判断来决定调用哪个具体类的构造函数。这种...