10.16日报
上午上了软件设计的课,进行了软件设计的实验
实验4:抽象工厂模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解抽象工厂模式的动机,掌握该模式的结构;
2、能够利用抽象工厂模式解决实际问题。
[实验任务一]:人与肤色
使用抽象工厂模式,完成下述产品等级结构:
实验要求:
1. 画出对应的类图;
2. 提交源代码;
- // 抽象产品:人
abstract class Person {
public abstract void use();
}
// 具体产品:男性
class MalePerson extends Person {
private String skinColor;
public MalePerson(String skinColor) {
this.skinColor = skinColor;
}
@Override
public void use() {
System.out.println("Using a male person with " + skinColor + " skin.");
}
}
// 具体产品:女性
class FemalePerson extends Person {
private String skinColor;
public FemalePerson(String skinColor) {
this.skinColor = skinColor;
}
@Override
public void use() {
System.out.println("Using a female person with " + skinColor + " skin.");
}
}
// 抽象工厂:人工厂
interface PersonFactory {
Person createPerson(String skinColor);
}
// 具体工厂:男性工厂
class MalePersonFactory implements PersonFactory {
@Override
public Person createPerson(String skinColor) {
return new MalePerson(skinColor);
}
}
// 具体工厂:女性工厂
class FemalePersonFactory implements PersonFactory {
@Override
public Person createPerson(String skinColor) {
return new FemalePerson(skinColor);
}
}
// 客户端代码
public class AbstractFactoryDemo {
public static void main(String[] args) {
PersonFactory maleFactory = new MalePersonFactory();
Person male = maleFactory.createPerson("yellow");
male.use();
PersonFactory femaleFactory = new FemalePersonFactory();
Person female = femaleFactory.createPerson("black");
female.use();
}
}