版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zy1104560031/article/details/84648491
十六、复合优先于继承
复合:在新的类中增加一个私有域,他引用现有类的的一个实例。(现有的类变成了新类的一个组件,装饰器模式)
wrapper class包装类
继承的功能非常强大,但是也存在诸多问题,因为它违背了封装的原则。只有当子类和超类之间确实存在子类型关系时,使用继承才是恰当的。
十七、要么为继承而设计,并提供文档说明,要么就禁止继承。
十八、接口优于抽象类
abstract与interface的区别:
抽象类允许包含某些方法的实现,接口则不允许。
骨架实现类:使用接口来实现类型。骨架实现类接管了所有与接口实现相关的工作。(适配器模式)
十九、接口只用于定义类型
二十、类层次优于标签类
二十一、用函数对象表示策略
策略模式
意图:将可互换的方法封装在各自独立的类中,并且让每个方法都实现一个公共的操作。
Stateful vs Stateless
有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。
无状态就是一次操作,不能保存数据。无状态对象(Stateless Bean),就是没有实例变量的对象,不能保存数据,是不变类,是线程安全的。