设计模式实验四

软件设计                  石家庄铁道大学信息学院

 

实验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.注意编程规范。

posted @ 2023-10-30 09:44  橘子味芬达水  阅读(19)  评论(0编辑  收藏  举报