实验四
[实验任务一]:人与肤色
使用抽象工厂模式,完成下述产品等级结构:
实验要求:
1.画出对应的类图;
2.提交源代码;
3.注意编程规范。
package colorman; public class Black implements Factory{ public Man produceMan() { return new BlackMan(); } public Woman produceWoman() { return new BlackWoman(); } }
package colorman; public class BlackMan implements Man{ public void makeM() { System.out.println("我是个男性黑人"); } }
public class BlackWoman implements Woman{ public void makeW() { System.out.println("我是个女性黑人"); } }
public interface Factory { public Man produceMan(); public Woman produceWoman(); }
public class Human { public static Man createM(String test) { if(test.equals("W")) { return new WhiteMan(); } else if(test.equals("B")) { return new BlackMan(); } else if(test.equals("Y")) { return new YellowMan(); } else { return null; } } public static Woman createW(String test) { if(test.equals("W")) { return new WhiteWoman(); } else if(test.equals("B")) { return new BlackWoman(); } else if(test.equals("Y")) { return new YellowWoman(); } else { return null; } } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String sex=new String(); System.out.println("请输入性别"); sex=sc.nextLine(); System.out.println("请输入肤色"); String color=new String(); color=sc.nextLine(); if(sex.equals("M")) { Man man = Human.createM(color); man.makeM(); } if(sex.equals("W")) { Woman woman = Human.createW(color); woman.makeW(); } } }
public interface Man { public void makeM(); }
public class White implements Factory{ public Man produceMan() { return new WhiteMan(); } public Woman produceWoman() { return new WhiteWoman(); } }
public class WhiteMan implements Man{ public void makeM() { System.out.println("我是个男性白人"); } }
public class WhiteWoman implements Woman{ public void makeW() { System.out.println("我是个女性白人"); } }
public interface Woman { public void makeW(); }
public class Yellow implements Factory{ public Man produceMan() { return new YellowMan(); } public Woman produceWoman() { return new YellowWoman(); } }
public class YellowMan implements Man{ public void makeM() { System.out.println("我是个男性黄人"); } }
public class YellowWoman implements Woman{ public void makeW() { System.out.println("我是个女性黄人"); } }