1:工厂方法模式:
public class FactoryTest { //定义抽象产品类 public abstract class Phone { public abstract String brandName(); } //定义具体实现类 public class Huawei extends Phone { @Override public String brandName() { return "my name is Huawei"; } } //定义具体实现类 public class Xiaomi extends Phone { @Override public String brandName() { return "my name is Xiaomi"; } } //定义抽象工厂 public abstract class Factory { public abstract Phone generatePhone(); } //定义Huawei工厂,生成华为手机 public class HuaweiFactory extends Factory { @Override public Phone generatePhone() { return new Huawei(); } } //定义Xiaomi工厂,生成小米手机 public class XiaomiFactory extends Factory { @Override public Phone generatePhone() { return new Huawei(); } } //使用: public void test() { Factory huaweiFactory = new HuaweiFactory(); Phone huaweiPhone = huaweiFactory.generatePhone(); Log.d("test", "phone name--->" + huaweiPhone.brandName()); Factory xiaomiFactory = new XiaomiFactory(); Phone xiaomiPhone = xiaomiFactory.generatePhone(); Log.d("test", "phone name--->" + xiaomiPhone.brandName()); } }