接口的意義
類描述的是一個(gè)實(shí)體渴频,包含試題的狀態(tài)和動(dòng)作芽丹。一個(gè)實(shí)體能發(fā)出的動(dòng)作由接口來定義。那么在類中對(duì)一個(gè)接口來定義卜朗,從本質(zhì)上講拔第,跟在抽象類中定義一個(gè)接口一樣,也體現(xiàn)著他的抽象性场钉,即它是可以變化的蚊俺。從面向?qū)ο蟮乃枷雭砜矗庋b好變化的部分逛万。這可能涉及到的涉及模式:模板涉及模式/命令涉及模式泳猬,在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ā)中較為常見飒房。