[实验任务一]:人与肤色
使用抽象工厂模式,完成下述产品等级结构:

实验要求:
1. 画出对应的类图;

2.提交源代码;
package designpattern;
/*
*
* 人类抽象类
*/
abstract class Human {
public abstract void color();
public abstract void talk();
}
abstract class BlackHuman extends Human{
@Override
public void color() {
System.out.println("我的皮肤是黑色");
}
abstract public void talk();
}
abstract class YellowHuman extends Human{
@Override
public void color() {
System.out.println("我的皮肤是黄色");
}
abstract public void talk();
}
abstract class WhiteHuman extends Human{
@Override
public void color() {
System.out.println("我的皮肤是白色");
}
abstract public void talk();
}
class FemaleBlackMan extends BlackHuman{
@Override
public void talk() {
System.out.println("我是黑人女性");
}
}
class FemaleWhiteMan extends WhiteHuman{
@Override
public void talk() {
System.out.println("我是白人女性");
}
}
class FemaleYellowMan extends YellowHuman{
@Override
public void talk() {
System.out.println("我是黄人女性");
}
}
class MaleBlackMan extends BlackHuman{
@Override
public void talk() {
System.out.println("我是黑人男性");
}
}
class MaleWhiteMan extends WhiteHuman{
@Override
public void talk() {
System.out.println("我是白人男性");
}
}
class MaleYellowMan extends YellowHuman{
@Override
public void talk() {
System.out.println("我是黄人男性");
}
}
interface HumanFactory{
public Human createBlackHuman();
public Human createWhiteHuman();
public Human createYellowHuman();
}
class FemaleHumanFactory implements HumanFactory{
@Override
public Human createBlackHuman() {
return new FemaleBlackMan();
}
@Override
public Human createWhiteHuman() {
return new FemaleWhiteMan();
}
@Override
public Human createYellowHuman() {
return new FemaleYellowMan();
}
}
class MaleHumanFactory implements HumanFactory{
@Override
public Human createBlackHuman() {
return new MaleBlackMan();
}
@Override
public Human createWhiteHuman() {
return new MaleWhiteMan();
}
@Override
public Human createYellowHuman() {
return new MaleYellowMan();
}
}
public class AbstractFactoryDemo {
public static void main(String[] args) {
//男性生产线
HumanFactory maleHumanFactory=new MaleHumanFactory();
//女性生产线
HumanFactory femaleHumanFactory=new FemaleHumanFactory();
Human maleBlack=maleHumanFactory.createBlackHuman();//创建黑人男性
Human femaleWhite=femaleHumanFactory.createWhiteHuman();//创建白人女性
maleBlack.color();
maleBlack.talk();
femaleWhite.color();
femaleWhite.talk();
}
}
3.注意编程规范。
« 上一篇:
软件设计3
» 下一篇:
软件设计5
posted @
2023-11-13 08:40
那年晚风可期
阅读(
6)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现