使用抽象工厂模式,完成下述产品等级结构:

1. 画出对应的类图;

2. 提交源代码;
public interface Skin {
void show();
}
public interface Gender {
void show();
}
public interface HumanFactory {
Skin createSkin();
Gender createGender();
}
public class WhiteSkin implements Skin {
@Override
public void show() {
System.out.println("White skin");
}
}
public class YellowSkin implements Skin {
@Override
public void show() {
System.out.println("Yellow skin");
}
}
public class BlackSkin implements Skin {
@Override
public void show() {
System.out.println("Black skin");
}
}
public class AfricanHumanFactory implements HumanFactory {
@Override
public Skin createSkin() {
return new BlackSkin();
}
@Override
public Gender createGender() {
// 根据具体需求选择性别
return new MaleGender(); // 示例为男性
}
}
public class AsianHumanFactory implements HumanFactory {
@Override
public Skin createSkin() {
return new YellowSkin();
}
@Override
public Gender createGender() {
// 根据具体需求选择性别
return new FemaleGender(); // 示例为女性
}
}
public class CaucasianHumanFactory implements HumanFactory {
@Override
public Skin createSkin() {
return new WhiteSkin();
}
@Override
public Gender createGender() {
// 根据具体需求选择性别
return new FemaleGender(); // 示例为女性
}
}
public class FemaleGender implements Gender {
@Override
public void show() {
System.out.println("Female gender");
}
}
public class MaleGender implements Gender {
@Override
public void show() {
System.out.println("Male gender");
}
}
public class Main{
public static void main(String[] args) {
HumanFactory asianFactory = new AsianHumanFactory();
Skin asianSkin = asianFactory.createSkin();
Gender asianGender = asianFactory.createGender();
asianSkin.show();
asianGender.show();
HumanFactory africanFactory = new AfricanHumanFactory();
Skin africanSkin = africanFactory.createSkin();
Gender africanGender = africanFactory.createGender();
africanSkin.show();
africanGender.show();
HumanFactory caucasianFactory = new CaucasianHumanFactory();
Skin caucasianSkin = caucasianFactory.createSkin();
Gender caucasianGender = caucasianFactory.createGender();
caucasianSkin.show();
caucasianGender.show();
}
}
« 上一篇:
工厂方法模式
» 下一篇:
建造者模式
posted @
2024-12-29 20:24
平安喜乐×
阅读(
3)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术