猿问

java中构建器类的正确命名

我有一个 Product 类和 Builder 类,其中一个可以构建该产品子类,从数据库获取数据,另一个构建器可以构建该产品,从其他来源获取数据。到目前为止我有一个界面:


public interface ProductDao {

  Product buildProduct(RetrieveBy by, String s);

}

具有构建选项的枚举:


public enum RetrieveBy {

  NAME, TYPE, BRAND

}

我不知道命名将要实现接口并将构建从数据库获取数据的产品的类的最佳方式是什么,以及可以构建从其他源(JSON、XML 或属性文件)获取数据的产品的其他类)。


有人建议我只创建一个类并命名它ProductBuilder,但是,在我看来,这违反了单一责任原则。


缥缈止盈
浏览 112回答 2
2回答

HUX布斯

事实是:这里没有硬性规则,只有惯例,最重要的是:您的公司/团队/项目中存在的“先例”。换句话说:做你周围其他人所做的事情。我的个人风格:我会称该接口ProductBuiler... DAO 意味着“数据访问对象”,该接口与此无关(直接)然后我会为该类命名ProductBuilderImpl。或者,如果每个“源”都有一个实现,那么简单地JsonProductBuilder或可能 ProductBuilderForJson.但正如所说,真正的答案是:不存在规定名称的普遍法则。您应该使用对您和您的团队“感觉”好的东西。

梵蒂冈之花

我不知道我是否确定您的疑问,但是,DAO 是一个数据访问对象,基本上它将应用程序/业务层与持久层隔离。如果您想创建一个构建器接口,可能是类似ProductBuilder.java 的接口,以及ProductBuilderImp.java的实现。
随时随地看视频慕课网APP

相关分类

Java
我要回答