public class Client3 {
public static void main(String[] args) {
five_hundred_mlGlass3_Factory obj = new five_hundred_mlGlass3_Factory();
obj.getGlass().glassCapacity();
obj.glassCapacityCover().glassCapacityCover();
seven_hundred_and_fifty_mlGlass3_Factory obj1 = new seven_hundred_and_fifty_mlGlass3_Factory();
obj1.getGlass().glassCapacity();
obj1.glassCapacityCover().glassCapacityCover();
}
}
interface Glass_three {//杯子3产品基类
public void glassCapacity();
}
class two_hundred_and_fifty_mlGlass3 implements Glass_three {//250ml杯子
@Override
public void glassCapacity() {
System.out.println("这是一个250ml的杯子!");
}
}
class five_hundred_mlGlass3 implements Glass_three {//500ml杯子
@Override
public void glassCapacity() {
System.out.println("这是一个500ml的杯子!");
}
}
class seven_hundred_and_fifty_mlGlass3 implements Glass_three {//750ml的杯子
@Override
public void glassCapacity() {
System.out.println("这是一个750ml的杯子!");
}
}
interface Glass_Cover_three {//杯子3盖子产品基类
public void glassCapacityCover();
}
class two_hundred_and_fifty_mlGlass_Cover3 implements Glass_Cover_three {//250ml杯子
@Override
public void glassCapacityCover() {
System.out.println("这是一个250ml的杯子的盖子!");
}
}
class five_hundred_mlGlass_Cover3 implements Glass_Cover_three {//500ml杯子
@Override
public void glassCapacityCover() {
System.out.println("这是一个500ml的杯子的盖子!");
}
}
class seven_hundred_and_fifty_mlGlass_Cover3 implements Glass_Cover_three {//750ml的杯子
@Override
public void glassCapacityCover() {
System.out.println("这是一个750ml的杯子的盖子!");
}
}
//杯子工厂基类
interface GlassFactory_two{
public Glass_three getGlass();
public Glass_Cover_three glassCapacityCover();
}
//250ml杯子工厂
class two_hundred_and_fifty_mlGlass3_Factory implements GlassFactory_two{
@Override
public Glass_three getGlass() {
return new two_hundred_and_fifty_mlGlass3();
}
public Glass_Cover_three glassCapacityCover() {
return new two_hundred_and_fifty_mlGlass_Cover3();
}
}
//500ml杯子工厂
class five_hundred_mlGlass3_Factory implements GlassFactory_two{
@Override
public Glass_three getGlass() {
return new five_hundred_mlGlass3();
}
public Glass_Cover_three glassCapacityCover() {
return new five_hundred_mlGlass_Cover3();
}
}
//750ml杯子工厂
class seven_hundred_and_fifty_mlGlass3_Factory implements GlassFactory_two{
@Override
public Glass_three getGlass() {
return new seven_hundred_and_fifty_mlGlass3();
}
public Glass_Cover_three glassCapacityCover() {
return new seven_hundred_and_fifty_mlGlass_Cover3();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
西南科技大学-软件设计模式与重构-代码部分
共36个文件
class:27个
java:3个
xml:2个
需积分: 30 0 下载量 46 浏览量
2022-10-11
15:31:23
上传
评论 1
收藏 20KB ZIP 举报
温馨提示
1.作业名称:工厂模式 2.作业内容: 制作一个抽象产品: 杯子 ① 制作2个具体产品: 250ml杯子和500ml杯子使用简单工厂来实现这个场景,并且让客户端通过简单工厂来获取具体产品。 ② 然后扩展-一个750ml杯子,你会发现这要修改简单工厂的代码。_进而就违反 了开闭原则。 ③ 所以再使用工厂方法来重构一遍代码。保证750ml杯子可以被顺利地扩展进来。 ④ 最后还需要为杯子成产相应的杯盖,杯盖随杯子容积的大小而不同,请继续重构完成该扩展。
资源详情
资源评论
资源推荐
收起资源包目录
HomeWorkTest.zip (36个子文件)
HomeWorkTest
bin
seven_hundred_and_fifty_mlGlass2.class 564B
simpleFactory.class 750B
five_hundred_mlGlass3_Factory.class 586B
GlassFactory.class 135B
Client3.class 823B
two_hundred_and_fifty_mlGlass3.class 562B
Glass_Cover_three.class 140B
Glass_three.class 129B
five_hundred_mlGlass.class 532B
Glass.class 122B
seven_hundred_and_fifty_mlGlass3_Factory.class 630B
two_hundred_and_fifty_mlGlass2_Factory.class 460B
five_hundred_mlGlass2.class 542B
seven_hundred_and_fifty_mlGlass2_Factory.class 466B
five_hundred_mlGlass3.class 544B
five_hundred_mlGlass2_Factory.class 433B
two_hundred_and_fifty_mlGlass_Cover3.class 594B
seven_hundred_and_fifty_mlGlass_Cover3.class 598B
GlassFactory_two.class 194B
two_hundred_and_fifty_mlGlass3_Factory.class 622B
two_hundred_and_fifty_mlGlass2.class 560B
Glass_Two.class 127B
five_hundred_mlGlass_Cover3.class 576B
Client2.class 700B
seven_hundred_and_fifty_mlGlass3.class 566B
Client.class 493B
two_hundred_and_fifty_mlGlass.class 550B
.settings
org.eclipse.jdt.core.prefs 645B
src
Client3.java 3KB
Client.java 1KB
Client2.java 2KB
.idea
misc.xml 201B
workspace.xml 4KB
.gitignore 190B
.project 388B
.classpath 301B
共 36 条
- 1
weixin_53547407
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
- 26-朴素贝叶斯分类.rar
- 没有安Matlab 也可以 生成FIR抽头系数工具.py
- python烟花代码.rar
- 实验目的: 1.构建基于verilog语言的组合逻辑电路和时序逻辑电路; 2.掌握verilog语言的电路设计技巧 3.完成如
- 扩展卡尔曼滤波matlab仿真
- 3_base.apk.1
- 躺赢者PRO飞控常见典型问题合集(续一)无名小哥 余义 20240501待修
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0