java基础学习总结之基本特征,最开始学习的时候,是形而上的理解,用了3年多,再回头看,理解起来颇为顺理成章
语言学习大概就是这样一种规律,学习,不甚解,应用,应用,渐深入人心,回头一看,恍然一悟
最近总结设计模式的六大原则,感觉颇有联系,先列出6大原则:
迪米特法则,里氏替换原则,依赖倒置,接口隔离,合成聚合,开闭原则
第一个,抽象
抽象并非java语言独有。一句话:忽略无关细节,对事物的行为和属性做抽象,反映为类中的域和方法
第二个,封装
隐藏内部细节,只提供与外界通信的接口。
这个特征与迪米特法则有些联系,迪米特法则要求实体间发生作用要尽量少,使得各个类相互独立,放大来说,各个系
统能相互独立,干自己的事,同事兼容的向外提供服务,笔者觉得封装这个词用来形容小服务,微服务也挺适合
第三个、继承
一个类派生出子类,称为继承,派生类继承基类的方法和实例变量,并可以覆盖或增加新的方法
这里就产生了子类父类的概念。我们结合第一个特征抽象,可以看到依赖倒置的原则就是这么来的,抽象不能依赖于
具体而是让具体依赖于抽象。
如果将继承的概念广泛化,那么实现接口也会产生子类和父类,开闭原则要求内部对扩展开放,对修改关闭,与继承有
很大的联系
里氏替换原则更简单的理解是,子类能出现的地方,父类一定也能出现并代替,在编程中其实很多地方都体现了,最常
见的 Map<xxx,xxx> map = new HashMap<>(); List<> list = new ArrayList<>(); 并非说一定要这样写,笔者开始用的时候其实
也不太理解为啥要这么写,直到后来看到书中作者的描述
合成和聚合原则,其实更好的词是组合和聚合,现在很多概念的界限其实都不是那么标准或严格了,我们将继承和持有,
一般是持有有限,持有就是持有一个实例
总之,一个继承诞生了无数的情形,开发者从中得到了很多经验的做法和原则,这个只能在设计和编码中慢慢体会
第四个、多态
父类的方法在子类中表现出不同的行为。有多态,那就有继承,有重写,有父类引用指向子类对象
多态例子太多了,做web开发的见得不要太多。但是,但是,利用多态衍生出的设计模式才是精髓,整个23种设计模式
到处都有体现,多态的光芒,无处不在,我们的里氏替换原则就是直接的体现。
java面向对象的基本特征其实没啥说的,难的是从中衍生的各种应用,譬如继承关系的类的加载顺序,设计模式,以及
我们的数据库表设计(抽象和封装能力),这些后面的篇章先预留着做总结。