设计计算器服务

时间:2014-08-10 10:08:35

标签: java design-patterns

我有一个名为Calculator的类,它调用一个名为 CalculatorService 的服务来执行某些算术运算。

public class Calculator {

   @Autowired
    CalculatorService calculatorService;

    @GET
    @Path("/add/{x}/{y}")
    @Produces(MediaType.APPLICATION_JSON)
    public Response add(@PathParam("x") int x, @PathParam("y") int y) {
        Double addR=calculatorService.add(x, y);
        Result r = new Result();
        r.setResult(addR);
        return Response.ok(r).build();
    }
}

我没有在这里创建类Result的新对象并更新结果,而是希望以更简洁的方式进行,如下所示。

calculatorService.add(x, y).result(); 

这将返回一个Result类对象,该对象最终将转换为JSON响应并返回。 Result类可能有更多属性,如num1,num2,timeTakenByCalculation等。

我想使用一些助手类使用构建器模式,但无法弄清楚如何实现它。

1 个答案:

答案 0 :(得分:0)

  

Builder设计模式的目的是分离   从其表示构造复杂对象。通过这样做,   相同的施工过程可以创造不同   表示。

您不希望/需要对JSON响应进行不同的表示,因此无需应用构建模式。

为什么不简单:

public interface CalculatorService {
  Result calculate(x, y); 
}

public class ResultJSONConverter {
  public JSONResponse convert(Result result);   
} 

你会像这样使用它们:

JSONResponse response = new ResultJSONConverter().convert(calculatorService.calculate(x,y));