[实验任务一]:人与肤色
使用抽象工厂模式,完成下述产品等级结构:
![]()
实验要求:
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.注意编程规范。
posted @
2023-11-13 08:40
那年晚风可期
阅读(
11)
评论()
收藏
举报