• EffectiveJava(14)在公有类中使用访问方法而非公有域


    1.公有类永远都不应该暴露可变的域.如果域是不可变的,暴露公有类的危害就要小一些.
    但是,有时候需要用包级私有的或者私有的嵌套类来暴露域,无论这个类是否可变
    2.如果公有类暴露了它的访问域,要想在将来改变其内部表示法是不可能的,因为公有类的客户端代码已经遍布隔出来

    当域被读取的时候,强加约束

    public final class TimeManager {
        private static final int HOURS_PER_DAY = 24;
        private static final int MINUTES_PER_HOURS = 60;
    
        public final int hour;
        public final int minute;
    
        public TimeManager(int hour,int minute){
            //当公有类的暴露域被读取的时候,强加约束
            if(hour < 0 || hour >= HOURS_PER_DAY)
                throw new IllegalArgumentException("hour:" + hour);
            if(minute<0||minute>=MINUTES_PER_HOURS)
                throw new IllegalArgumentException("min:"+minute);
            this.hour = hour;
            this.minute = minute;
        }
    }
  • 相关阅读:
    批量ping工具fping
    图形文件元数据管理工具exiv2
    JPG图片EXIF信息提取工具exif
    网络图片嗅探工具driftnet
    复杂密码生成工具apg
    前端面试题目准备
    JS中同步与异步的理解
    angular初体验
    媒体查询的两种方式
    CSS3多列布局
  • 原文地址:https://www.cnblogs.com/qwop/p/6637299.html
Copyright © 2020-2023  润新知