美文网首页
第 23 条:类层次优先与标签类

第 23 条:类层次优先与标签类

作者: 综合楼 | 来源:发表于2021-05-08 23:29 被阅读0次
类层次优先与标签类.jpeg
标签类
// Tagged class - vastly inferior to a class hierarchy!
class Figure {
    enum Shape { RECTANGLE, CIRCLE };
    // Tag field - the shape of this figure
    final Shape shape;
    // These fields are used only if shape is RECTANGLE
    double length;
    double width;
    // This field is used only if shape is CIRCLE
    double radius;
    // Constructor for circle
    Figure(double radius) {
        shape = Shape.CIRCLE;
        this.radius = radius;
    }
    // Constructor for rectangle
    Figure(double length, double width){
        shape = Shape.RECTANGLE;
        this.length = length;
        this.width = width;
    }
    double area(){
        switch(shape) {
            case RECTANGLE:
                return length * width;
            case CIRCLE:
                return Math.PI * (radius * radius);
            default:
                throw new AssertionError(shape);
        }
    }
}

类层次
// Class hierarchy replacement for a tagged class
abstract class Figure {
    abstract double area();
}
class Circle extends Figure {
    final double radius;
    Circle(double radius) { this.radius = radius; }
    @Override double area() { return Math.PI * (radius*radius);}
}
class Rectangle extends Figure {
    final double length;
    final double width;
    Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }
    @Override double area() { return length * width; }
}

相关文章

  • 第 23 条:类层次优先与标签类

    标签类 类层次

  • 类层次优先于标签类

    这种标签类的缺点 职责不唯一 可读性差 内存占用增加了 不能将length、width 、radius域设置为fi...

  • 类层次由于标签类

    有时候,可能会遇到带有两种甚至更多种分格的实例的类,并包含标识实例分格的标签域,举个栗子 这样的标签类有许多缺点,...

  • Effective Java(第3版)第7章总结

    第42条:lambda 优先于匿名类 代码更简洁,当创建匿名类的时候,IDE会提示转成 lambda。 第43条:...

  • 提示二十三

    今天来看提示二十三: 类层次优于标签类。 作者使用了Figure的例子说明了标签类是那种拥有多种风格实例,通过标签...

  • allure-09-标签

    一、装饰器 二、标记 可继承,方法继承类 可重写,方法自身标签优先,没有再用类标签 标签可以同时打多个,逗号分割 ...

  • 09 聚类算法 - 层次聚类 - CF-Tree、BIRCH、C

    08 聚类算法 - 聚类算法的衡量指标 五、层次聚类概述 层次聚类方法对给定的数据集进行层次的分解,直到满足某种条...

  • 第52条:通过接口引用对象

    第40条有一个建议:对于参数类型,要优先使用接口而不是类。通俗地讲,应该优先使用接口而不是类来引用对象。如果有合适...

  • 第六十四条:通过接口引用对象

    第51条建议:应该使用接口而不是类作为参数类型。更通俗来讲,应该优先使用接口而不是类来引用对象。如果有合适的接口类...

  • allure-07-层级管理

    一、层级装饰器 二、标识层级 可继承,方法继承类 可重写,方法自身标签优先,没有再用类标签 三、报告展现 四、按层...

网友评论

      本文标题:第 23 条:类层次优先与标签类

      本文链接:https://www.haomeiwen.com/subject/aazkdltx.html