简单工厂模式(也称为静态工厂模式)
简单工厂模式的作用:通过一个类去实例化对象,不需要直接把类的创建写在逻辑中,达到一定程度的解耦,方便维护。但是未遵循开闭原则。
看一下例子:
场景:现在有一个工厂,承接了小米,华为,苹果3个品牌手机制造。
手机类
public abstract class Phone {
public abstract String getDescript();
public abstract void call();
}
public class ApplePhone extends Phone{
@Override
public String getDescript() {
return "苹果";
}
@Override
public void call() {}
}
public class HuaWeiPhone extends Phone{
@Override
public String getDescript() {
return "华为";
}
@Override
public void call() {}
}
public class XiaoMiPhone extends Phone {
@Override
public String getDescript() {
return "小米";
}
@Override
public void call() {}
}
手机工厂
public class PhoneFactory {
public static Phone createPhone(String tag) {
Phone phone = null;
switch (tag) {
case "iphone":
phone = new ApplePhone();
break;
case "xiaomi":
phone = new XiaoMiPhone();
break;
case "huawei":
phone = new HuaWeiPhone();
break;
}
return phone;
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Phone phone = PhoneFactory.createPhone("xiaomi");
if (phone==null){
return;
}
String descript = phone.getDescript();
Log.e("zhang", "onCreate: "+descript);
}
}