zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    GDB 学习
    常用Linux命令(长期更新)
    动态规划专题总结
    awk 简易使用
    mysql相关
    curl 整理
    linux 拆分文件
    Python中的排序方法
    about python
    vim 常用命令
  • 原文地址:https://www.cnblogs.com/qwop/p/6637299.html
Copyright © 2011-2022 走看看