软件设计4

[实验任务一]:人与肤色

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

 

 

 

实验要求:

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)  评论(0)    收藏  举报