介面以及工廠模式

2021-09-17 22:24:00 字數 2583 閱讀 1662

定義介面使用關鍵字inte***ce,介面就是抽象方法與全域性常量的集合(純粹版的抽象類)

inte***ce

imyite***ce

為什麼說介面是純粹版的抽象類?抽象類可以包含普通方法而介面只能包含抽象方法。

介面使用大寫i開頭;子類要想使用介面,用implements實現介面,乙個子類可以同時實現多個介面(避免了單繼承侷限)

inte***ce

imessage

inte***ce

inews

class

messageimpl

implements

imessage

,inews

inte***ce

ibpublic

inte***ce

imessage

extends

ia,ib

(5)如果乙個抽象類繼承了介面,那麼抽象類當中可以不實現介面的方法。但是如果在有乙個普通類繼承了此抽象類,那麼此不同類一定要實現介面和抽象類裡面的方法。

inte***ce

iaabstract

class

bimplements

iaclass

cextends

b@override

public

void

fun2()

}

(6)乙個抽象類可以使用implements實現多個介面

但反過來介面不能繼承抽象類。因為一但介面繼承了抽象類,就必須覆寫抽象類中的抽象方法,而介面裡不能有已經實現的方法!

(7)當子類既需要實現介面又需要繼承抽象類,請先使用extends繼承乙個抽象類,而後使用implements實現多個介面

inte***ce

imessage

abstract

class

news

class

messageimpl

extends

news

implements

imessage

public

void

getnews()

}

a.定義操作標準

b.表示能力

c.(了解)分布式開發中暴露遠端服務方法。

介面優先原則:

在乙個操作可以使用抽象類又可以使用介面的時候,優先考慮使用介面。

//定義乙個usb介面

public

inte***ce

usb//u盤類

class

udisk

implements

usb@override

public

void

work()

}//印表機類

class

printdisk

implements

usb@override

public

void

work()

}class

computer

}public

static

void

main

(string[

] args)

class

macbookpro

implements

computer

}class

su***cebook

implements

computer

}//將所有產生computer物件例項的操作解耦到工廠類中。

class

compute***ctor

return computer;

}public

class

text1

class

macbookpro

implements

computer

}class

su***cebook

implements

computer

}class

alienware

implements

computer

}//工廠介面

inte***ce

compute***ctory

//微軟工廠類

class

msfactory

implements

compute***ctory

}//蘋果工廠類

class

implements

compute***ctory

}public

class

text1

}

a.對於簡單工廠模式,優點是簡單易於實現,建立物件過程應放在工廠內完成,但違背了開閉原則,如果要增加新的具體產品類,就必須修改工廠類。

b.對於工廠方法模式,是通過擴充套件來新增工廠類的,符合開閉原則,但客戶端必須感知到具體的工廠,知道有這麼個工廠的存在。而且由於每個產品都有自己的工廠,**量相比簡單工廠要大。

介面與工廠(設計模式)

介面是實現多重繼承的途徑,而生成遵循某個介面物件的經典方式就是工廠方法設計模式。這種方式與直接呼叫建構函式的不同,我們在工廠物件呼叫的是建立方法,該工廠的方法將生成介面的某個實現類的物件。理論上,通過這種方式,我們的 將完全與介面的實現分離,這就使得我們可以透明地將某個實現替換為另乙個實現。下面我們...

面向介面程式設計 工廠模式 單例模式

當與資料庫打交道,考慮到有各種各樣的資料庫,我們通常設計乙個dao介面與n個dao類,dao類實現dao介面,在處理類中定義乙個dao介面,並在配置檔案中設定這個介面使用的是哪個dao類。此種方法也叫控制反轉。當有好多介面時如userdao,categorydao,productdao時,我們通常設...

面向介面程式設計 工廠模式 單例模式

當與資料庫打交道,考慮到有各種各樣的資料庫,我們通常設計乙個dao介面與n個dao類,dao類實現dao介面,在處理類中定義乙個dao介面,並在配置檔案中設定這個介面使用的是哪個dao類。此種方法也叫控制反轉。當有好多介面時如userdao,categorydao,productdao時,我們通常設...