摘要: 不可变类简单来说是其实例不能被修改的类。 包含在每个实例中的所有信息在对象的生命周期中是固定的,因此不会观察到任何变化。 Java 平台类库包含许多不可变的类,包括 String 类、基本类型包装类以及 BigInteger 类和 BigDecimal 类。 有很多很好的理由:不可变类比可变类更易于 阅读全文
posted @ 2020-04-06 18:25 webzom 阅读(120) 评论(0) 推荐(0)
摘要: 有时候,你可能会试图写一些退化的类(degenerate classes),除了集中实例属性之外别无用处 class Point { public double x; public double y; } 由于这些类的数据属性可以直接被访问,因此这些类不提供封装的好处(详见第 15 条)。 如果不更 阅读全文
posted @ 2020-04-06 18:24 webzom 阅读(190) 评论(0) 推荐(0)
摘要: 将设计良好的组件与设计不佳的组件区分开来的最重要的因素是,隐藏内部数据和其他实现细节的程度。一个设计良好的组件隐藏了它的所有实现细节,干净地将它的 API 与它的实现分离开来。然后,组件只通过它们的 API 进行通信,并且对彼此的内部工作一无所知。这一概念,被称为信息隐藏或封装,是软件设计的基本原则 阅读全文
posted @ 2020-04-06 18:15 webzom 阅读(140) 评论(0) 推荐(0)