这是一个简单的问题.
class salad
class chef_salad extends salad
class ceasar_salad extends salad
Run Code Online (Sandbox Code Playgroud)
所以我有一个变量type,我想根据类型创建适当的对象.
显然我能做到
if(type.equals("chef"){ salad s = new chef_salad(); }
Run Code Online (Sandbox Code Playgroud)
我想我甚至可以做一个返回salad对象的静态方法,但这真的是最好的方法还是通过构造函数有更好的方法呢?
PS.虚构的例子
Vik*_*dor 11
您正在讨论工厂模式,您希望隐藏在继承层次结构中基于输入实例化给定类型的对象的逻辑.
public class SaladFactory
{
public Salad getSalad(type) {
if ("chef".equals(type) {
return new ChefSalad();
}
...
}
}
Run Code Online (Sandbox Code Playgroud)