因为部门安排了读书学习,目前正在读的书是《thinking in java》第七章复用类、第八章多态,把自己读书中的一些体会在这边做一些简单的记录。
1.域对象不存在多态,但父类的引用指向子类对象时,在内存中是分配两处不同的地址来存储父类引用和子类对象的。
2..组合和继承,一般情况下使用组合。继承只有确实存在具有通用性时才需要将一部分通用的处理抽象出来形成一个基类并供其他业务类继承。
3.代理从代码的实现上更像组合,代理的使用场景一般是假如一个类除了需要实现基类各个方法的外,还需要在实现这些方法前或者后面增加一些自己的处理,这种情况下如果直接使用继承也能够实现,但是往往需要在基类的基础上增加处理或者重写基类的方法来达到自身扩展的需求。无论是那种方法,基类的方法都需要直接对外暴露才能供使用者使用了。这个时候如果使用代理的话,可以把基类的方法封装到代理方法体中,并在调用基类方法前或者后加入扩展的处理达到自身扩展的需求。
以上三点写的可能有些晦涩,如果有不正确的地方,还请大家指出。