接口的意義
類描述的是一個(gè)實(shí)體,包含試題的狀態(tài)和動(dòng)作。一個(gè)實(shí)體能發(fā)出的動(dòng)作由接口來定義。那么在類中對(duì)一個(gè)接口來定義,從本質(zhì)上講,跟在抽象類中定義一個(gè)接口一樣,也體現(xiàn)著他的抽象性,即它是可以變化的。從面向?qū)ο蟮乃枷雭砜?,要封裝好變化的部分。這可能涉及到的涉及模式:模板涉及模式/命令涉及模式,在util類里封裝了會(huì)改變的Worker,可以理解為,util里面有自己的算法:一部分是固定的,而另一部分是可變的,這個(gè)可變的部分就變成了了一個(gè)接口,接口則是特殊的抽象類,worker可能在不同的工作環(huán)境有不同的工作方式,如work(),onvaction()等等。
因此在類中定義一個(gè)接口是有必要性的,它代表著一種編程思想,定義接口的目的是讓代碼有更強(qiáng)的可擴(kuò)展性。
接口的特點(diǎn)
1.定義接口的重要性:在java中 abstrack 和interface是支持抽象類定義的兩種機(jī)制。正是由于這兩種機(jī)制的存在,才使得java成為面向?qū)ο蟮木幊陶Z言。
2.定義接口有利于定義代碼規(guī)范,對(duì)于一個(gè)大型的項(xiàng)目而言,架構(gòu)師往往會(huì)對(duì)一些主要的接口來進(jìn)行定義,或者清理一些沒有必要的接口,這樣做的目的一方面是為了給開發(fā)人員一個(gè)清晰的指示,告訴他們哪些業(yè)務(wù)需要實(shí)現(xiàn);同時(shí)也能防止由于開發(fā)人員隨意命名而導(dǎo)致的命名不清晰和代碼混亂,影響效率。
3.有利于對(duì)代碼進(jìn)行維護(hù):比如要做一個(gè)畫板程序,其中里面有一個(gè)面板類,主要負(fù)責(zé)繪畫功能,然后你就這樣定義了這個(gè)類??梢圆痪?,突然發(fā)現(xiàn)現(xiàn)有的類不能滿足需要,然后你又要重新設(shè)計(jì)這個(gè)類,更糟糕的是你可能要放棄這個(gè)類,那么其他地方有可能引用他,這樣修改起來很麻煩,如果你一開始定義一個(gè)接口,把繪制功能放在接口里,然后定義時(shí)實(shí)現(xiàn)這個(gè)接口,然后你只要用這個(gè)接口去引用實(shí)現(xiàn)它的類就行了,以后要更換的話只不過是引用另一個(gè)類而已,這樣就達(dá)到了維護(hù),拓展的方便性。
4.保證代碼的安全性和嚴(yán)密性:一個(gè)好的程序一定符合高內(nèi)聚低耦合的特征,那么實(shí)現(xiàn)低耦合,定義接口是一個(gè)很好的方法,能夠讓系統(tǒng)的功能更好的實(shí)現(xiàn),而不涉及任何具體的實(shí)現(xiàn)細(xì)節(jié),這樣就比較安全,嚴(yán)密一些,這一思想一般在軟件開發(fā)中較為常見。