You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
我一直在想如何写好这一篇文章,因为此章节应该比之前面的章节更有价值,内容更加有趣,学习的其中一个乐趣在于看完一个理论,又在另外一个地方看到了理论的实践,随着开发经验的增加,发现技术并不是井喷式的增加,而是破冰式的,怎么说呢,技术在某个地方都有着相似的地方,看完koltin的继承,重载设计,还有很多关键字如 open ,override, final就不得不佩服koltin的设计👍,因为它在很多程度上遵守了《effective java》里面的items,下面容我娓娓道来😝。
open关键字跟final关键字想法
死记硬背这些条约其实没有意思,真正的理解背后设计的意义
effective java中item15 minimize the accessibility of classes and members
约束条款阐述如下
1.好的组件设计是不对外暴露实现细节(另外的组件只能通过api来访问)
2.一个好的组件需要隐藏自己的细节,而提供一个简洁的对外API
3.公共的类中不要提供公共的field.保证public final 的成员是immutable的
item17 minimize mutability
优点这里不做阐述,java在这方便做的不好,我们喜欢用继承,但是用好继承的人很少,反而会造成系统的bug,程序员们不知道怎么样去安全的继承一个类,父类的设计,我们更倾向于安全的设计,所以koltin默认是final的,所有的内容不加open都是final,不推荐子类中使用,这样也很直观
上面例子最后阐述了子类在没有primary构造函数继承的时候如何通过secondary构造方法直接或者间接完成任务
下面在看一个例子,验证文字描述
我一直在想如何写好这一篇文章,因为此章节应该比之前面的章节更有价值,内容更加有趣,学习的其中一个乐趣在于看完一个理论,又在另外一个地方看到了理论的实践,随着开发经验的增加,发现技术并不是井喷式的增加,而是破冰式的,怎么说呢,技术在某个地方都有着相似的地方,看完koltin的继承,重载设计,还有很多关键字如 open ,override, final就不得不佩服koltin的设计👍,因为它在很多程度上遵守了《effective java》里面的items,下面容我娓娓道来😝。
死记硬背这些条约其实没有意思,真正的理解背后设计的意义
effective java中item15 minimize the accessibility of classes and members
约束条款阐述如下
1.好的组件设计是不对外暴露实现细节(另外的组件只能通过api来访问)
2.一个好的组件需要隐藏自己的细节,而提供一个简洁的对外API
3.公共的类中不要提供公共的field.保证public final 的成员是immutable的
item17 minimize mutability
优点这里不做阐述,java在这方便做的不好,我们喜欢用继承,但是用好继承的人很少,反而会造成系统的bug,程序员们不知道怎么样去安全的继承一个类,父类的设计,我们更倾向于安全的设计,所以koltin默认是final的,所有的内容不加open都是final,不推荐子类中使用,这样也很直观
上面例子最后阐述了子类在没有primary构造函数继承的时候如何通过secondary构造方法直接或者间接完成任务
下面在看一个例子,验证文字描述
这里var修饰的 get()方法,不能被val修饰的成员变量重载,原因是,子类不能缩小父类的读写权限
effective java对于后端程序员如圣经般的存在,需要好好研读:innocent:
The text was updated successfully, but these errors were encountered: