Java 1.4 工厂问题

发布于 2024-10-16 18:17:26 字数 395 浏览 2 评论 0原文

我有一个工厂,我想限制可能传递到 get 方法中的可能值。

public static class FooFactory{

 public static final String TYPE1= "type1";
 public static Foo getFoo(String type){
   switch(type){
    case "type1":
      return new Type1();
    }
   }

 }

要使用这个:

FooFactory.getFoo(FooFactory.TYPE1);

我想限制可能传入的参数。是否有一个想法是创建一个 Type 抽象类,然后子类化并使用 Type 作为参数?

I have a factory, and I want to restrict the possible values that may be passed into the get method.

public static class FooFactory{

 public static final String TYPE1= "type1";
 public static Foo getFoo(String type){
   switch(type){
    case "type1":
      return new Type1();
    }
   }

 }

To use this:

FooFactory.getFoo(FooFactory.TYPE1);

I'd like to restrict the parameters that may be passed in. Is an idea to make a Type abstract class, then subclass and use Type as the parameter?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最笨的告白 2024-10-23 18:17:26

不要子类化它,只需创建一个带有带有 Stirng 参数的私有构造函数的 Type 类,并定义公共 Type 常量。

像这样的东西。

public final class Type {

    public static final Type FOO = new Type( "foo" );
    public static final Type BAR = new Type( "bar" );

    private String type;

    private Type( String type ) {
      this.type = type;
    }

    public String getType() { return type; }
}

Don't subclass it, just create a Type class with a private constructor that takes a stirng parameter, and define public Type constants.

Something like this.

public final class Type {

    public static final Type FOO = new Type( "foo" );
    public static final Type BAR = new Type( "bar" );

    private String type;

    private Type( String type ) {
      this.type = type;
    }

    public String getType() { return type; }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文