简单工厂设计模式,也就是静待工厂
场景,最近小米6很火啊,我也是小米的粉丝,就拿小米6来说,有黑色,白色,蓝色,三种非常亮的颜色。
先来代码,然后有疑惑,最后解释。
简单工厂设计模式有一个类是抽象类,是黑色,白色,蓝色手机的父类。
/** * 小米手机抽象类 * * @author sdc * */ public abstract class XiaoMiProduction { /** * 生产小米6的方法 */ public abstract void createXiaoMi6(); }
蓝色手机生产类。
public class XiaoMi6Blue extends XiaoMiProduction{ @Override public void createXiaoMi6() { // TODO Auto-generated method stub System.out.println("生产亮蓝版本小米6"); } }
白色手机生产类。
package com.test4; public class XiaoMi6White extends XiaoMiProduction{ @Override public void createXiaoMi6() { // TODO Auto-generated method stub System.out.println("生产亮白版本小米6"); } }
黑色手机生产类:
public class XiaoMi6Black extends XiaoMiProduction{ @Override public void createXiaoMi6() { // TODO Auto-generated method stub System.out.println("生产亮黑版本小米6"); } }
工厂类产生,生产小米6的工厂类。
/** * 生产小米6的工厂 * * @author sdc * */ public class XiaoMi6Factory { // 蓝色 private static final String blule = "blue"; // 黑色 private static final String black = "black"; // 白色 private static final String white = "while"; /** * 静态工厂方法 * @param colour * @return */ public static XiaoMiProduction createXiaoMi6(String colour) { XiaoMiProduction xmP = null; switch (colour) { case black: xmP = new XiaoMi6Black(); break; case blule: xmP = new XiaoMi6Blue(); break; case white: xmP = new XiaoMi6White(); break; } return xmP; } }
说明:
生产哪一种颜色的手机,有你给传入到工厂类里的参数决定的,这个静态方法会返回给你一个具体的生产类。用这个生产类来去调用具体的业务逻辑。
角色划分:
抽象产品角色:就是上文提到的XiaoMiProduction这个抽象类,是那父类,可以是接口也可以是抽象类。
具体产品角色:就是生产三种颜色的手机类,具体的业务逻辑。
工厂角色:就是XiaoMi6Factory这个类,作用就是生产具体的产品的类,里面提供一个静态方法,提供给外部调用。
时间: 2024-10-14 04:30:15