您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)怎么用Java實(shí)現(xiàn)的設(shè)計(jì)模式的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
/**
* Design Pattern In Java
* Name:Factory
* 目的:利用工廠模式創(chuàng)建兩個(gè)產(chǎn)品系列Mac和Win
* Mac:MacRam,Maccpu
* Win:WinRam,WinCpu
* A:abstract
* C:Concret
* Author:blackphoenix
* Modify Date:2002-08-17
*/
/**
* 抽象產(chǎn)品類 Ram Cpu
*/
abstract class AProductRam {
public String getProduct() {
return this+" Product";
}
}
abstract class AProductCpu {
public String getProduct() {
return this+" Product";
}
}
/**
* 具體產(chǎn)品 MacRam,WinRam
*/
class CProductMacRam extends AProductRam {
public String toString() {
return "MacRam";
}
}
class CProductWinRam extends AProductRam {
public String toString() {
return "WinRam";
}
}
/**
* 具體產(chǎn)品 MacCpu,WinCpu
*/
class CProductMacCpu extends AProductCpu {
public String toString() {
return "MacCpu";
}
}
class CProductWinCpu extends AProductCpu {
public String toString() {
return "WinCpu";
}
}
/**
*生成一種新的產(chǎn)品系列時(shí),接口改動的代碼
*/
/*
class CProductNewRam extends AProductRam {
public String toString() {
return "NewRam";
}
}
class CProductNewCpu extends AProductCpu {
public String toString() {
return "NewCpu";
}
}
*/
/**
* 抽象工廠 AFactory
*/
interface AFactory {
public AProductRam CreateProductRam();
public AProductCpu CreateProductCpu();
}
/**
* 具體工廠 CFactoryMac
* 創(chuàng)建Mac產(chǎn)品系列
× MacRam MacCpu
*/
class CFactoryMac implements AFactory {
public AProductRam CreateProductRam() {
return new CProductMacRam();
}
public AProductCpu CreateProductCpu() {
return new CProductMacCpu();
}
}
/**
* 具體工廠 CFactoryWin
* 創(chuàng)建Win產(chǎn)品系列
× WinRam WinCpu
*/
class CFactoryWin implements AFactory {
public AProductRam CreateProductRam() {
return new CProductWinRam();
}
public AProductCpu CreateProductCpu() {
return new CProductWinCpu();
}
}
/**
* 要生成一種新的產(chǎn)品系列時(shí),對客戶要派發(fā)一個(gè)新的產(chǎn)品工廠
* 同時(shí)要派生出一種新的具體產(chǎn)品
* CFactoryNew
* NewMem,NewCpu
*/
/*
class CFactoryNew implements AFactory {
public AProductRam CreateProductRam() {
return new CProductNewRam();
}
public AProductCpu CreateProductCpu() {
return new CProductNewCpu();
}
}
*/
/**
* 客戶端
* 1.使用FactoryMac創(chuàng)建Mac系列產(chǎn)品:ProductMacRam,ProductMacCpu
× 2.使用FactoryWin創(chuàng)建Win系列產(chǎn)品:ProductWinRam,ProductWinCpu
* 3.只要知道CFactoryMac,CFactoryWin(具體工廠)和
* AProductRam,AProductCpu(抽象產(chǎn)品)即可,至于具體產(chǎn)品的創(chuàng)建
* 細(xì)節(jié)客戶不用關(guān)心
*/
class Factory {
private static void printProduct(String v) {
System.out.println(v);
}
public static void main(String[] args) {
AProductRam ProductMacRam=null,ProductWinRam=null;
AProductCpu ProductMacCpu=null,ProductWinCpu=null;
CFactoryMac FactoryMac=new CFactoryMac();
CFactoryWin FactoryWin=new CFactoryWin();
ProductMacRam=FactoryMac.CreateProductRam();
ProductMacCpu=FactoryMac.CreateProductCpu();
ProductWinRam=FactoryWin.CreateProductRam();
ProductWinCpu=FactoryWin.CreateProductCpu();
printProduct(ProductMacRam.getProduct());
printProduct(ProductMacCpu.getProduct());
printProduct(ProductWinRam.getProduct());
printProduct(ProductWinCpu.getProduct());
/**
*生成一種新的產(chǎn)品系列時(shí),客戶端改動的代碼
*/
/*
AProductRam ProductNewRam=null;
AProductCpu ProductNewCpu=null;
CFactoryNew FactoryNew=new CFactoryNew();
ProductNewRam=FactoryNew.CreateProductRam();
ProductNewCpu=FactoryNew.CreateProductCpu();
printProduct(ProductNewRam.getProduct());
printProduct(ProductNewCpu.getProduct());
*/
}
}
感謝各位的閱讀!關(guān)于“怎么用Java實(shí)現(xiàn)的設(shè)計(jì)模式”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。