怎么用Java实现的设计模式

这篇文章给大家分享的是有关怎么用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实现的设计模式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


分享名称:怎么用Java实现的设计模式
转载来源:http://pwwzsj.com/article/geodje.html