zoukankan      html  css  js  c++  java
  • 工厂模式的C++、Java实现

    1、工厂模式UML

    图1. 工厂模式UML

    2、C++实现

      类视图如下:

    图2. 工厂模式C++实现的类图

       其中,Factory实现为:

     1 //工厂类。
     2 class Factory
     3 {
     4 public:
     5     Factory();
     6     ~Factory();
     7 
     8     //工厂方法。
     9     virtual Product * Create() = 0;
    10 };

      ConcreteFactoryA实现为:

     1 //类声明:
     2 class ConcreteFactoryA :
     3     public Factory
     4 {
     5 public:
     6     ConcreteFactoryA();
     7     ~ConcreteFactoryA();
     8 
     9     Product * Create();
    10 };
    11 
    12 //类方法定义
    13 Product * ConcreteFactoryA::Create() {
    14     ConcreteProductA * cpa = new ConcreteProductA();
    15 
    16     return cpa;
    17 }//end method Create

      ConcreteFactoryB的代码与ConcreteFactoryA的代码相似,不再列出。

    3、Java实现

      类视图如下:

      

    图3. 工厂模式Java实现的类视图

       其中,Factory实现代码是:

    1 //抽象工厂类。
    2 public interface Factory {
    3 
    4     //抽象工厂方法。
    5     public Product Create();
    6 }//end interface Factory

      ConcreteFactoryA的实现代码是:

     1 //具体工厂类,用于创建ConcreteProductA的对象。
     2 public class ConcreteFactoryA implements Factory {
     3 
     4     @Override
     5     public Product Create() {
     6         // TODO Auto-generated method stub
     7         return new ConcreteProductA();
     8     }//end method Create
     9 
    10 }//end class ConcreteFactoryA

      ConcreteFactoryB的代码与ConcreteFactoryA的相似,不再列出。

    4、点击下载源码

  • 相关阅读:
    团队开发——描绘用户场景
    学习EXTJS6(2)“Hello Usegear”
    D2007从win7升级到win10下的莫名其妙问题。
    学习EXTJS6(1)安装环境
    raize5的修改。
    EurekaLog是什么鬼?
    EditorLineEnds.ttr的困扰
    dev的汉化
    cxGrid主从表删除从表记录的困惑
    痛苦的Windows下的temp目录
  • 原文地址:https://www.cnblogs.com/minbaba/p/6362710.html
Copyright © 2011-2022 走看看