您当前的位置: 首页 > 

java持续实践

暂无认证

  • 2浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

设计模式 开闭原则

java持续实践 发布时间:2022-03-09 06:51:52 ,浏览量:2

文章目录
      • 开闭原则的定义
      • 开闭原则代码实战

开闭原则的定义

对扩展开放, 对原有的修改封闭. 类似于封装好的jar包, 只能对其扩展功能, 不能对其jar包修改 .

开闭原则代码实战

需求: 计算圆的面积. 原有封装好的jar包中定义的π 是3.14, 但某个需求需要更高精度的π, 那么就需要对原有的计算圆面积的π进行扩展, 提高精度.

接口: ICalculationArea

public interface ICalculationArea {


    /**
     *计算面积  圆形
     * @param r 圆的半径
     * @return
     */
    double circular(double r);

}

jar包中的实现类

public class CalculationArea implements ICalculationArea {

    private final static double  π = 3.14D;

    public double circular(double r) {
        return π * r * r;
    }
}

扩展类CalculationAreaExt , 同样实现了ICalculationArea 接口, 定义了更高精度的π

public class CalculationAreaExt implements ICalculationArea {

    // 更高的精度
    private final static double  π = 3.1415926D;

    public double circular(double r) {
        return π * r * r;
    }
}

测试类 , 分别创建两个对象, 一个是扩展类, 一个是原有类 . 都进行圆的面积计算并打印结果.

public class ApiTest {

    @Test
    public void test_CalculationArea(){
        ICalculationArea areaExt = new CalculationAreaExt();
        ICalculationArea area = new CalculationArea();
        double circularExt = areaExt.circular(10);
        double circular = area.circular(10);

        System.out.println(circularExt);
        System.out.println(circular);
    }

}

控制台输出如下

314.15926 314.0

可以看到扩展类成功的输出了更高精度的圆的面积, 实现了对原有类不修改的情况下的扩展.

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0466s