算法封装思考

  • 策略模式

    Volume计算时,针对不同的入参,如何做成策略模式?

    1. 入参合并

      入参差别过大,或者下一个算法入参还不相同时,则不再适合

      再有种方式是归一化参数:通过List等将参数归一化。如JsonObject或者map

    2. 2个不同接口

      不同接口不再是传统的策略模式了

      实现上也有一些不同的方式,如果直接实现接口,则每添加一个不同入参,则其他的实现都需要添加

      一个不错的方式是,由抽象类去实现接口,其他从抽象类去重载。

      这种的难处是:调用时,需要区分哪个接口可用,也比较不爽

    综合来看:虽然封装上应该在一起,但差别过大的时候,确实很难用统一的接口去抽象,从而实现一个策略模式。

  • 实践经验

    • 从下往上的方式
    • 从上往下的方式
    • 针对变化进行设计
    • 从抽象入手,再去定每个接口的具体参数

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×