您好,登录后才能下订单哦!
这篇文章给大家分享的是有关怎么用Java实现的设计模式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
/**
* Design Pattern In Java
* Name:Factory
* 目的:利用工厂模式创建两个产品系列Mac和Win
* Mac:MacRam,Maccpu
* Win:WinRam,WinCpu
* A:abstract
* C:Concret
* Author:blackphoenix
* Modify Date:2002-08-17
*/
/**
* 抽象产品类 Ram Cpu
*/
abstract class AProductRam {
public String getProduct() {
return this+" Product";
}
}
abstract class AProductCpu {
public String getProduct() {
return this+" Product";
}
}
/**
* 具体产品 MacRam,WinRam
*/
class CProductMacRam extends AProductRam {
public String toString() {
return "MacRam";
}
}
class CProductWinRam extends AProductRam {
public String toString() {
return "WinRam";
}
}
/**
* 具体产品 MacCpu,WinCpu
*/
class CProductMacCpu extends AProductCpu {
public String toString() {
return "MacCpu";
}
}
class CProductWinCpu extends AProductCpu {
public String toString() {
return "WinCpu";
}
}
/**
*生成一种新的产品系列时,接口改动的代码
*/
/*
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
* 创建Mac产品系列
× MacRam MacCpu
*/
class CFactoryMac implements AFactory {
public AProductRam CreateProductRam() {
return new CProductMacRam();
}
public AProductCpu CreateProductCpu() {
return new CProductMacCpu();
}
}
/**
* 具体工厂 CFactoryWin
* 创建Win产品系列
× WinRam WinCpu
*/
class CFactoryWin implements AFactory {
public AProductRam CreateProductRam() {
return new CProductWinRam();
}
public AProductCpu CreateProductCpu() {
return new CProductWinCpu();
}
}
/**
* 要生成一种新的产品系列时,对客户要派发一个新的产品工厂
* 同时要派生出一种新的具体产品
* CFactoryNew
* NewMem,NewCpu
*/
/*
class CFactoryNew implements AFactory {
public AProductRam CreateProductRam() {
return new CProductNewRam();
}
public AProductCpu CreateProductCpu() {
return new CProductNewCpu();
}
}
*/
/**
* 客户端
* 1.使用FactoryMac创建Mac系列产品:ProductMacRam,ProductMacCpu
× 2.使用FactoryWin创建Win系列产品:ProductWinRam,ProductWinCpu
* 3.只要知道CFactoryMac,CFactoryWin(具体工厂)和
* AProductRam,AProductCpu(抽象产品)即可,至于具体产品的创建
* 细节客户不用关心
*/
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());
/**
*生成一种新的产品系列时,客户端改动的代码
*/
/*
AProductRam ProductNewRam=null;
AProductCpu ProductNewCpu=null;
CFactoryNew FactoryNew=new CFactoryNew();
ProductNewRam=FactoryNew.CreateProductRam();
ProductNewCpu=FactoryNew.CreateProductCpu();
printProduct(ProductNewRam.getProduct());
printProduct(ProductNewCpu.getProduct());
*/
}
}
感谢各位的阅读!关于“怎么用Java实现的设计模式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。