【问题标题】:Need Help Naming Class需要帮助命名类
【发布时间】:2011-08-09 09:54:47
【问题描述】:

我有一个分析字符串的类,如果字符串不为 null 或空字符串,它会根据子类的类型使用对象创建一个新的字符串或新的日期。如果字符串为 null 或为空,则返回一个空字符串。目前我称这个类转换器但是我觉得这个名字有误导性,有没有人能想到这个类在做什么更好的名字?我想要一些直观的东西,让我的代码更具可读性。谢谢。

public abstract class Converter {
    Object returnObject;

    public Converter() {

    }

    public Object convert(String value)
    {
        if(!this.isEmpty(value))
        {
            this.setReturnObject(value);    
        }else
        {
            this.returnObject = "";
        }
        return this.getReturnObject();
    }

    protected boolean isEmpty(String value)
    {
        return (value != null && value.equalsIgnoreCase(""));
    }

    protected abstract void setReturnObject(String value);

    protected Object getReturnObject(){
        return this.returnObject;
    }
}

public class NumberConverter extends Converter {
    public NumberConverter() {
    }

    protected void setReturnObject(String value) {
        this.returnObject = new Number(Integer.parseInt(value));
    }
}

【问题讨论】:

  • 我认为它属于这里:english.stackexchange.com :)
  • 我认为我在正确的论坛中。至少根据 Bob 大叔的书籍 Clean Coder 和 Clean Code,命名是生成可读代码的重要组成部分

标签: java naming


【解决方案1】:

您可以使用 EntityMapper 或 EntityTransformer。

【讨论】:

    【解决方案2】:

    “实体”前缀不合适,因为该类不采用实体,而是采用字符串。

    我也不会选择转换器(或转换器),因为原始值不会改变(作为不可变字符串类型的规则)。

    我会选择 StringMapper 或者 StringParser(如 Burleigh Bear 建议的那样)。

    顺便说一句,您可以使用泛型来指定映射/解析的类型,并使这段代码更加类型安全。

    【讨论】:

      【解决方案3】:

      我猜抽象类里面不包含任何方法定义...!! 最好先检查那个东西..!!

      就命名而言,我同意萨思维克的观点。 谢谢。 :)

      【讨论】:

      • 抽象类可以包含方法定义。这是一个有效的案例。只有接口不能有方法定义。
      • @indyaah,我不确定抽象类不包含任何方法定义是什么意思?如果您的意思是实现者必须重写的抽象方法,您看到了吗:protected abstract void setReturnObject(String value); ?
      • 是的......我的错误......我想我在抽象类和接口之间感到困惑。
      【解决方案4】:

      由于您要获取一个字符串并对其进行解析,所以我会说“解析器”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 2019-09-20
        • 2018-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多