接下来的几篇我会一直总结我在学习架构方面的一点体会,和思想。
首先我今天看到了一个人对面向对象的解释,有人说万物皆对象,我觉得这句话对于一个入门级对象编程的人来说,就是云里雾里,因为它真的太抽象了。而在面向对象编程一年多,我今天也是重新再认识了一下它。我认为作为一个架构师,学会解耦,是必要不充分条件。解耦即下层代码不直接为上层代码提供服务(不是直接实例化在上层中),而是通过定义一个接口,向上层暴露接口功能,而不是依赖具体的类。这样做层次之间消除耦合,下层代码更改,只要接口不变,那么上层代码不用更改。
其次说一下接口与抽象类,什么时候用接口,什么时候用抽象类:使用抽象类是为了代码的服用,使用接口是为了定义行为,当我们不需要担心代码重复性的问题的时候,应该优先选择接口,否则有可能带来不能多继承相关的问题。然后我们回顾一下接口的特性吧
interface的特性整理如下:
1. 接口中的方法可以有参数列表和返回类型,但不能有任何方法体。
2. 接口中可以包含字段,但是会被隐式的声明为static和final。
3. 接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。
4. 接口中的方法可以被声明为public或不声明,但结果都会按照public类型处理。
5. 当实现一个接口时,需要将被定义的方法声明为public类型的,否则为默认访问类型,Java编译器不允许这种情况。
6. 如果没有实现接口中所有方法,那么创建的仍然是一个接口。
7. 扩展一个接口来生成新的接口应使用关键字extends,实现一个接口使用implements。