2023/10/9 每日总结
实验4:抽象工厂模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解抽象工厂模式的动机,掌握该模式的结构;
2、能够利用抽象工厂模式解决实际问题。
[实验任务一]:人与肤色
类图
源代码
package org.test4; public abstract class AbstractHumanFactory { public abstract Man produceMan(); public abstract Woman produceWomen(); } package org.test4; public class BlackFactory extends AbstractHumanFactory{ @Override public Man produceMan() { return new BlackMan(); } @Override public Woman produceWomen() { return new BlackWoman(); } } package org.test4; public class BlackMan extends Man{ @Override public void show() { System.out.println("黑色男人"); } } package org.test4; public class BlackWoman extends Woman{ @Override public void show() { System.out.println("黑色女人"); } } package org.test4; public class Client { public static void main(String[] args) { try { AbstractHumanFactory factory=new BlackFactory(); Man man = factory.produceMan(); Woman woman = factory.produceWomen(); man.show(); woman.show(); } catch(Exception e) { System.out.println(e.getMessage()); } } } package org.test4; public abstract class Man { public abstract void show(); } package org.test4; public class WhiteFactory extends AbstractHumanFactory{ @Override public Man produceMan() { return new WhiteMan(); } @Override public Woman produceWomen() { return new WhiteWoman(); } } package org.test4; public class WhiteMan extends Man{ @Override public void show() { System.out.println("白色男人"); } } package org.test4; public class WhiteWoman extends Woman{ @Override public void show() { System.out.println("白色女人"); } } package org.test4; public abstract class Woman { public abstract void show(); } package org.test4; public class YellowFactory extends AbstractHumanFactory{ @Override public Man produceMan() { return new YellowMan(); } @Override public Woman produceWomen() { return new YellowWoman(); } } package org.test4; public class YellowMan extends Man{ @Override public void show() { System.out.println("黄色男人"); } } package org.test4; public class YellowWoman extends Woman{ @Override public void show() { System.out.println("黄色女人"); } }