Java设计模式-工厂

Java设计模式中,工厂模式主要包括普通工厂模式以及抽象工厂模式,普通工厂模式是用于制造输出不同类型的对象,抽象工厂模式是用于制造输出不同类型的普通工厂,本文主要描述工厂模式的基本用法。

如上所示,使用普通工厂模式以及抽象工厂模式实现的类图,其中,类之间的关系体现出OOP(面向对象编程)的继承封装多态的基本特性

|---------------------------------------------------------------------------------------------------------------------------------|
| 需求描述 构建不同类型国度,不同的国度构建不同的皇帝、城堡、军队,其中,不同的国度使用抽象工厂模式,每个国度使用普通工厂模式 |
| App类 设计模式运行类,用于测试抽象工厂模式以及普通工厂模式 AppTest类 设计模式测试类,用于测试App类 AbstractFactoryTest类 抽象工厂模式测试类,用于构建普通工厂类,其中,该类与App类构成关联关系 |

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Kingdom类 构建国度类,国度类中包括皇帝、城堡以及军队 FactoryMaker类 该类是Kingdom类的静态内部类,使用抽象工厂模式构建国度普通工厂,其中,该类的方法makeFactory根据输入的国度类型构建不同的国度普通工厂 KingdomFactory接口 国度普通工厂接口,用于实现不同类型的国度普通工厂类,使用普通工厂模式构建不同的国度Kingdom类 ElfKingdomFactory类 国度普通工厂KingdomFactory接口实现类,类实现接口体现出OOP的多态性,一个接口可以被不同的类实现,一个类可以实现多个不同的接口,每个接口类型体现出不同的行为形态 OrcKingdomFactory类 国度普通工厂KingdomFactory接口实现类 KingdomType类 国度类型,是枚举类型,用于构建不同类型的国度普通工厂,其中,包括Elf类型的国度以及Orc类型的国度 |
| King接口 皇帝接口,用于实现不同类型的皇帝 ElfKing类 皇帝King接口实现类,实现Elf类型国度的皇帝 OrcKing类 皇帝King接口实现类,实现Orc类型国度的皇帝 |
| Army接口 军队接口,用于实现不同类型的军队 ElfArmy类 军队Army接口实现类,实现Elf类型国度的军队 OrcArmy类 军队Army接口实现类,实现Orc类型国度的军队 |
| Castle接口 城堡接口,用于实现不同类型的城堡 ElfCastle类 城堡Castle接口实现类,实现Elf类型国度的城堡 OrcCastle类 城堡Castle接口实现类,实现Orc类型国度的城堡 |

相关推荐
一点媛艺1 小时前
Kotlin函数由易到难
开发语言·python·kotlin
姑苏风1 小时前
《Kotlin实战》-附录
android·开发语言·kotlin
奋斗的小花生2 小时前
c++ 多态性
开发语言·c++
魔道不误砍柴功2 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2342 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨2 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
老猿讲编程2 小时前
一个例子来说明Ada语言的实时性支持
开发语言·ada
Chrikk3 小时前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*3 小时前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue3 小时前
go语言连续监控事件并回调处理
开发语言·后端·golang