Java 语言的设计思想
1.面向对象
1.代码的世界是什么?
其实可以看成是现实世界映射成代码的影子,不过为了更方便实现和理解,采用了各种思维模式去实现.
2.常见的代码思维模式有哪些?
面向过程,面向对象,面向接口,函数式编程等等
3.面向对象是什么?
编程, 在我理解而言,面向对象其实就是面向抽象编程.
4.什么是抽象?
抽象可以理解成抽离不同事物之间的共性,抽离出的这个共性使用一个东西指代,这个就叫做类.
5.为什么要抽象?
可以抽离出重复性代码,也符合现实世界以及人思考的方式。
举个栗子:
笔记本电脑, 台式机电脑, 掌上电脑, 工业的嵌入式电脑,它们都有共性,本身都属于电脑. 这个时候就可以把这些共性抽离出来.例如都有CPU、内存、硬盘、主板、电源等共性。
这样一来的好处就是,把原本定义在各个类型电脑中的重复性描述代码抽离到了电脑这个抽象出来的类中。
周总理说的求同存异思想其实在代码世界中也是程序员的追求,因为相同的重复性代码,只需要一份,太多重复代码只会无意义消耗电脑资源,阅读和维护也很麻烦,无谓地人力和物力。
2.面向接口
1.什么是接口
就是定义类一系列方法的集合,一个类实现了这个接口,就必须把这些方法都实现。
所以其实接口是对实现这个接口类的一个约束,约束这些方法名字,但并没有约束方法的代码具体实现。
Java本身的Collection中的List、Set都是实现的类,这两个类的子类ArrayList、LinkedList、HashSet都是遵照这个思想。这样一来的好处是,ArrayList和LinkedList都会有相同的来源于Collection接口的调用方法,方便开发者调用。
Java中的JDBC规范,本身也是一套接口,数据库厂商必须遵循这套接口规范来提供实现了这些接口的类,并且一般都会打成jar包。带来的好处是,不管什么类型的数据库,只要你遵守了JDBC这套规范,对于java程序员来说都可以使用同一套代码和接口来调用不同的数据库功能。
2.接口由来
原本抽象类也具备对方法的定义以及方法实现的约束,但是抽象类本身是一个类,只能约束子类。换言之,要使用抽象类必须继承这个抽象类。而Java为了避开C++以及Python的多继承的文体,引入了接口这个概念。接口不需要继承,而且一个接口可以扩展自另外一个接口,一个类可以实现多个接口,取长补短。很棒的设计思想,所以很多编程语言是单继承,但都引入了接口这个概念。如Object C、Swift、Kotlin等
3.为什么要有面向接口
本身面向接口也是面向抽象的一种,但抽象的目标就是一大类的对象,这些对象都有一个共性,就是都实现了这个接口,都有这些方法。所以其实面向接口最终还是面向抽象编程,不过抽离出的共性就是接口中定义的方法。
4.什么好处?
在2这个点中其实已经说明了好处,接口能够很好地对方法名做约束,但不会约束方法的代码具体实现。这个其实就是工业领域的标准化。
举个栗子
一个USB接头,不管是哪个厂家生产的,不管是用什么材质,黄金的,塑料的,不锈钢的,铜的,最终都必须遵循USB接口的外形规范,否则就无法匹配各个电脑上的USB接口。而用户其实不用关心这个USB接头是什么材质,我只需要知道这是一个USB接口,对着USB接口插进去就能使用了。
Java中的interface也是同理,如果很多类都实现了某一个接口来对外提供功能调用如Collection中的ArrayList和LinkedList所共有的来自于Collection接口的调用方法。
总而言之,接口本身也是一种抽象,不过是面向共性方法的一种抽象,也可以说是一种约束。实现了同一个接口的多个类对外暴露方法就会统一,最终方便程序员调用。
1.面向对象带来的好处就是,可以把一个复杂事物按照分层的想法,逐步逐步抽象成不同的父类和子类>2.面向接口的好处是,可以把很多个类需要统一和规范对外提供的方法标准化
3.面向对象是继承
4.面向接口就是组合
本文探讨了Java语言的设计思想,重点在于面向对象和面向接口的概念。面向对象强调通过抽象来抽离代码的共性,提高代码复用和可维护性。而面向接口则是一种约束,确保实现接口的类具有统一的方法调用,增强了代码的标准化和可扩展性。通过接口,Java避免了多继承带来的问题,实现了接口的多实现。面向对象和面向接口的结合,使得Java代码更加模块化和易于管理。
907

被折叠的 条评论
为什么被折叠?



