第7章:复用类
复用就是字面上的意思,重复使用。这是为了减少重复开发,提高效率,效率是非常重要的。于是提出来了组合、复用和代理。
先说代理,就是基本上把原有的对象复制了一遍包装上,还是在组合的基础上,操作的,感觉一点也没有提高效率,但是相比之下灵活性是很好。因为可以根据需要选择想要的,也就是有在总集中选择子集的权利。就像我最近找工作时遇到外派一样,外派公司代理自己找工作,就是代理啊,根据他们的需要包装,然后推出去。
组合,是指在一类对象绑定另一类对象,单向绑定。具体的实现应该是与import有极大的关系,通过import关联相关类,这个时候便会加载一次该类的文件。static相关的应该也是在这个时候开始初始化的。它的底层应该就像昨天的class文件内容一样,在构造器结束前完成初始化关联的对象,然后将引用放入新对象的成员变量中。最后将新对象 的引用存入栈中。
继承,是基类“共享”一部分信息。其本质也是将引用复制到子对象中,但是java将父子类之间的界限划分的还是挺明显的,父类只能修改父类中的数据,子类只能修改子类中的数据。protected就是专门用来针对继承设置的,但是组合相比于继承更加便利,这真是奇怪,大力气设计了继承,到头来更提倡组合。
有复用就要有禁止复用,这个禁止主要针对继承,又是继承,真搞不懂。主要使用final的目的1:为了有个编译时的常量;2.初始化后不希望改变的值。它主要用来修饰变量,其实也就是引用的相关内容。但是引用对象的部分的数据还是可以修改的,这就引出来,如果是空final,可以有一次赋值机会,在初始化的时候又一次机会。
复用代码是java众多引人注目的功能之一。但想要称为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事。