Mar*_*cek 6 java design-patterns factory
我已经使用Java很长一段时间了,但我从来没有发现过,有什么factories特别之处.有人可以向我解释一下吗?我有什么理由想要实现自己的factory(如果可能的话)?
小智 12
工厂模式非常适合解耦课程.例如,让我们假设一个公共接口Animal,以及一些实现它的类.Dog,Cat.
如果您不知道用户在运行时要生成什么,则无法创建Dog指针.它根本行不通!
但你可以做的是将它移植到一个单独的类中,并在运行时将鉴别器传递给工厂类.然后该类将返回该对象.例如:
public Animal getInstance(String discriminator)
{
if(discriminator.equals("Dog")) {
return new Dog();
}
// etc.
}
Run Code Online (Sandbox Code Playgroud)
调用类只使用:
String type = "Dog";
Animal value = Factory.getInstance(type);
Run Code Online (Sandbox Code Playgroud)
这使得代码具有极高的可读性,将决策逻辑与对值执行的逻辑分离,并通过一些通用接口将类分离.总而言之,漂亮的模式!
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |