【发布时间】:2019-01-02 14:01:25
【问题描述】:
下面是我的转换器界面
public interface Transformer<BusinessObject, O extends State>
{
public O transformToState(BusinessObject input);
}
这是我的 Transformer Impl 之一
public class GoldTransformer implements Transformer<BusinessObject, Gold>
{
@Override
public Gold transformToState(BusinessObject input) {
GoldBO goldbo= (GoldBO) input; // redundant casting line
//do some transformation with BO to make it a state with some business logic
}
}
这是我的另一个 Transformer Impl
public class SilverTransformer implements Transformer<BusinessObject, Sliver>
{
@Override
public Gold transformToState(BusinessObject input) {
SilverBO goldbo= (SilverBO) input; // redundant casting line
// again do some transformation with BO to make it a state with some business logic
}
}
SilverBO 和 GoldBO 都实现了 BusinessObject,这是一个标记接口。并且Silver 和Gold 扩展State。我真的觉得铸造烦人和多余的有没有更好的方法在这里使用泛型?还是更好的模式?我不想对state 进行任何更改,即黄金和白银。
【问题讨论】:
-
Gold和GoldBO是什么关系? -
GoldBO 有一些额外的属性,并不是直接复制 Gold。根据业务逻辑,我决定哪些值应该进入黄金状态
标签: java generics design-patterns interface