软件设计 石家庄铁道大学信息学院
实验4:抽象工厂模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解抽象工厂模式的动机,掌握该模式的结构;
2、能够利用抽象工厂模式解决实际问题。
[实验任务一]:人与肤色
使用抽象工厂模式,完成下述产品等级结构:
实验要求:
1. 画出对应的类图;
2. 提交源代码;
package db;
public class BlackPerson implements Person { @Override public String getGender() { return "Black person"; } }
|
package db;
public class BlackSkinFactory implements SkinFactory { @Override public Person createPerson() { return new BlackPerson(); } }
|
package db;
public class Main { public static void main(String[] args) { SkinFactory factory = new YellowSkinFactory(); // 使用黄色肤色工厂 Person person = factory.createPerson(); // 创建黄色人种对象 System.out.println(person.getGender()); // 输出:Yellow person
factory = new BlackSkinFactory(); // 使用黑色肤色工厂 person = factory.createPerson(); // 创建黑色人种对象 System.out.println(person.getGender()); // 输出:Black person
factory = new WhiteSkinFactory(); // 使用白色肤色工厂 person = factory.createPerson(); // 创建白色人种对象 System.out.println(person.getGender()); // 输出:White person } }
|
package db;
public interface Person { String getGender(); }
|
package db;
public interface SkinFactory { Person createPerson(); }
|
package db;
public class WhitePerson implements Person { @Override public String getGender() { return "White person"; } }
|
package db;
public class WhiteSkinFactory implements SkinFactory { @Override public Person createPerson() { return new WhitePerson(); } }
|
package db;
public class YellowPerson implements Person { @Override public String getGender() { return "Yellow person"; } }
|
package db;
public class YellowSkinFactory implements SkinFactory { @Override public Person createPerson() { return new YellowPerson(); } }
|
运行截图:
3.注意编程规范。