工廠模式大家應該都聽過,但是可能大家更多的是處於聽的乙個狀態,工廠模式其實從名字可以看出來,是乙個工廠,那麼正如他的名字一樣,工廠生產加工然後製造出零件供我們使用,那麼我們中間的加工的步驟都是由工廠來進行完成,我們拿到的是乙個成品,所以我們可以知道其實工廠模式就是可以讓我們不用知道其中間的步驟,只需要關心我們拿到的東西。
那麼我們下面用**進行演示
首先我們建立乙個汽車的介面定義它的型別(跑車或者是卡車)
/**
* 汽車
*/public inte***ce car
建立它的實現類,瑪莎拉蒂和東風卡車
/**
* 瑪莎拉蒂
*/public class maserati implements car
}
/**
* 東風卡車
*/public class dongfeng implements car
}
測試
public class test
}
輸出
但是如果建立的過程比較複雜,並且有大量的重複工作建立簡單的工廠這時候如果我們還是去new那就會很麻煩下面我們使用簡單工廠模式
/**
*簡單的工廠
*/public class ******factory
if ("瑪莎拉蒂".equals(type))else if ("東風".equals(type))else }}
測試
public class test
}
輸出
以上為簡單工廠,為了使使用者更好的建立自己想要的物件,那我們可以使用抽象工廠首先定義乙個工廠介面那麼我們開始建立抽象工廠
public inte***ce factory
建立東風卡車的工廠
public class dongfengfactory implements factory
}
建立瑪莎拉蒂的工廠
public class maseratifactory implements factory
}
建立抽象工廠,這裡使用的是抽象類,而不是介面,因為抽象類還可以寫一些初始化的方法等等
/**
* 抽象工廠
*/public abstract class abstractfactory
建立抽象工廠的實現類
public class ca***ctory extends abstractfactory
@override
public car creactmaseraticar()
}
測試
public class test
}
輸出
由此我們可以對工廠模式有乙個大概的了解,我們學習設計模式的時候一定要知道設計模式是為了提公升**的可讀性和拓展性
所以我們不要去生拉硬套,應該根據合適的業務去思考使用
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
設計模式 工廠設計模式
用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...
設計模式 工廠設計模式
工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...