介面與工廠(設計模式)

2021-07-14 14:15:52 字數 1858 閱讀 9075

介面是實現多重繼承的途徑,而生成遵循某個介面物件的經典方式就是工廠方法設計模式。這種方式與直接呼叫建構函式的不同,我們在工廠物件呼叫的是建立方法,該工廠的方法將生成介面的某個實現類的物件。

理論上,通過這種方式,我們的**將完全與介面的實現分離,這就使得我們可以透明地將某個實現替換為另乙個實現。

下面我們來看看**

public

inte***ce

service

public

inte***ce

servicefactory

class serviceimplement1 implements service

@override

public

void

method2()

}class implements1factory implements servicefactory

}class serviceimplement2 implements service

@override

public

void

method2()

}class implements2factory implements servicefactory

public

class

testinte***cefactory

public

static

void

main(string args)

}

結果為:

serviceimplement1 method1

serviceimplement1 method2

serviceimplement2 method1

serviceimplement2 method2

通過上面程式,我們建立乙個工廠類servicefactory,其方法getservice()返回的是service介面的乙個實現類的物件。

如果不是用工廠方法,你的**就必須在某處指定將要建立的service的具體型別,以便呼叫合適的構造器

使用工廠方法的原因就是想要建立框架。

下面我們使用匿名內部類對上面的程式進行簡化,**會比較簡潔

public

inte***ce

service

public

inte***ce

servicefactory

class serviceimplement1 implements service

@override

public

void

method1()

@override

public

void

method2()

public

static servicefactory sf1=new servicefactory()

};}class serviceimplement2 implements service

@override

public

void

method1()

@override

public

void

method2()

public

static servicefactory sf2=new servicefactory()

};}public

class

testinte***cefactory

public

static

void

main(string args)

}

簡單工廠設計模式與工廠設計模式

工廠設計模式的目的 降低呼叫者和實現者之間的耦合度。當需求發生變化 增加或改變 時,不改變原有 的結構。1.簡單工廠設計模式 優點 降低了呼叫者和實現者之間的耦合度。當引入乙個新的實現型別時,只需要增加乙個實現類,然後修改工廠類即可。缺點 只適用於層次結構較為簡單的情況。如果可能的實現型別很多,工廠...

介面多型靜態工廠設計模式模板設計模式

1,介面 什麼是介面?介面就是乙個特殊的抽象函式,裡面的方法全部是public abstract型別的方法,必須全部進行重寫。為什麼要是用介面?可以多繼承成多實現,對公升級拓展很方便 如何使用介面?通過關鍵字inte ce來定義乙個介面,通過implements來實現介面。2,多型 什麼是多型?事物...

反射與工廠設計模式

工廠設計模式的一般格式 介面 實現對應介面的子類 工廠類通過反射技術改進的工廠,不再使用new關鍵字來例項化物件了 package com.reflect.factory.model inte ce ifruit ifruit class factory public static ifruit g...