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、点击下载源码

  • 相关阅读:
    [hdu6271]Master of Connected Component
    [hdu5468]Puzzled Elena
    [hdu4582]DFS spanning tree
    [poj2054]Color a Tree
    [luogu4107]兔子和樱花
    整除的尾数[HDU2099]
    胜利大逃亡[HDU1253]
    Bitset[HDU2051]
    折线分割平面[HDU2050]
    不容易系列之(4)——考新郎[HDU2049]
  • 原文地址:https://www.cnblogs.com/minbaba/p/6362710.html
Copyright © 2011-2022 走看看