EffectiveJava11-30-2018

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zy1104560031/article/details/84648491

十六、复合优先于继承

        复合:在新的类中增加一个私有域,他引用现有类的的一个实例。(现有的类变成了新类的一个组件,装饰器模式)

        wrapper class包装类

继承的功能非常强大,但是也存在诸多问题,因为它违背了封装的原则。只有当子类和超类之间确实存在子类型关系时,使用继承才是恰当的。

十七、要么为继承而设计,并提供文档说明,要么就禁止继承。

十八、接口优于抽象类

        abstract与interface的区别:
抽象类允许包含某些方法的实现,接口则不允许。

骨架实现类:使用接口来实现类型。骨架实现类接管了所有与接口实现相关的工作。(适配器模式)

十九、接口只用于定义类型

二十、类层次优于标签类

二十一、用函数对象表示策略

策略模式

意图:将可互换的方法封装在各自独立的类中,并且让每个方法都实现一个公共的操作。

Stateful vs Stateless

有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。

无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象,不能保存数据,是不变类,是线程安全的。

猜你喜欢

转载自blog.csdn.net/zy1104560031/article/details/84648491