漫画:什么是 “抽象工厂模式” ?








public?interface?IMask?{
????void?showMask();
}
public?class?LowEndMask?implements?IMask?{
????@Override
????public?void?showMask(){
????????System.out.println("我的低端口罩");
????}
}
public?class?HighEndMask?implements?IMask?{
????@Override
????public?void?showMask()?{
????????System.out.println("我是高端口罩");
????}
}
public?interface?IProtectiveSuit?{
????void?showSuit();
}
public?class?LowEndProtectiveSuit?implements?IProtectiveSuit?{
????@Override
????public?void?showSuit()?{
????????System.out.println("我是低端防护服");
????}
}
public?class?HighEndProtectiveSuit?implements?IProtectiveSuit?{
????@Override
????public?void?showSuit()?{
????????System.out.println("我是高端防护服");
????}
}
public?interface?IFactory?{
????//创建口罩
????IMask?createMask();
????//创建防护服
????IProtectiveSuit?createSuit();
}
public?class?LowEndFactory?implements?IFactory?{
????@Override
????public?IMask?createMask()?{
????????IMask?mask?=??new?LowEndMask();
????????//?.....
????????//??LowEndMask的100行初始化代码
????????return?mask;
????}
????@Override
????public?IProtectiveSuit?createSuit()?{
????????IProtectiveSuit?suit?=??new?LowEndProtectiveSuit();
????????//?.....
????????//??LowEndProtectiveSuit的100行初始化代码
????????return?suit;
????}
}
public?class?HighEndFactory?implements?IFactory?{
????@Override
????public?IMask?createMask()?{
????????IMask?mask?=??new?HighEndMask();
????????//?.....
????????//?HighEndMask的100行初始化代码
????????return?mask;
????}
????@Override
????public?IProtectiveSuit?createSuit()?{
????????IProtectiveSuit?suit?=??new?HighEndProtectiveSuit();
????????//?.....
????????//??HighEndProtectiveSuit的100行初始化代码
????????return?suit;
????}
}
public?class?Test?{
????public?static?void?main(String[]?args)?{
????????IFactory?factoryA?=?new?LowEndFactory();
????????IFactory?factoryB?=?new?HighEndFactory();
????????//创建低端口罩
????????IMask?maskA?=?factoryA.createMask();
????????//创建高端口罩
????????IMask?maskB?=?factoryB.createMask();
????????//创建低端防护服
????????IProtectiveSuit?suitA?=?factoryA.createSuit();
????????//创建高端防护服
????????IProtectiveSuit?suitB?=?factoryB.createSuit();
????????maskA.showMask();
????????maskB.showMask();
????????suitA.showSuit();
????????suitB.showSuit();
????}
}








<bean?id="userController"?class="com.xiaohui.controller.UserController">
????<constructor-arg?name="userService"?ref="userService"></constructor-arg>
</bean>
<bean?id="userService"?class="com.xiaohui.service.UserService">






更多精彩推荐
?没有 5G 版 iPhone 的苹果秋季发布会,发布了些什么?
?IT 往事录:苹果 Mac 之父,却在 Mac 问世前黯然退场
?极简椭圆曲线密码学入门
点分享 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中共中央政治局召开会议 7904619
- 2 课本上明太祖画像换了 7808483
- 3 外交部回应普京对中印关系评论 7714593
- 4 8.85亿人次受益后 医保又出实招 7616303
- 5 日本记者街头采访找不到中国游客 7520381
- 6 2分钟烧到100℃?警惕用电“雷区” 7426521
- 7 净网:网民造谣汽车造成8杀被查处 7330493
- 8 苟仲文受贿2.36亿余元一审被判死缓 7235548
- 9 1岁多女童吊环上“开挂” 7144064
- 10 寒潮来袭 “速冻”模式如何应对 7040999




CSDN
