zoukankan      html  css  js  c++  java
  • 工厂方法模式

    介绍工厂方法模式之前先需要知道简单工厂模式,简单工厂模式是类的创建模式,又叫静态工厂方法模式,简单工厂模式是由一个工厂对象决定创建出哪一种产品类:

     1 //抽象产品接口
     2 interface Product{
     3     public void method();
     4 }
     5 
     6 //具体产品类
     7 class ProductA implements Product{
     8     
     9     @Override
    10     public void method() {
    11         //业务代码
    12     }
    13     
    14 }
    15 
    16 class ProductB implements Product{
    17 
    18     @Override
    19     public void method() {
    20         //业务代码
    21     }
    22     
    23 }
    24 
    25 class Factory{
    26     
    27     public Product getProduct(String type){
    28         if("A".equals(type))
    29             return new ProductA();
    30         else if("B".equals(type))
    31             return new ProductB();
    32         else
    33             return null;
    34     }
    35 }

    工厂方法模式是简单工厂的拓展形式,将工厂类也进行抽象化,由具体的实现了工厂接口的具体的工厂类创建对象:

     1 //抽象产品类
     2 interface File{
     3     public void method();
     4 }
     5 
     6 //具体产品类
     7 class HTMLFileA implements File{
     8 
     9     @Override
    10     public void method() {
    11         //业务代码
    12     }
    13     
    14 }
    15 
    16 class HTMLFileB implements File{
    17 
    18     @Override
    19     public void method() {
    20         //业务代码
    21     }
    22     
    23 }
    24 
    25 class XMLFileA implements File{
    26 
    27     @Override
    28     public void method() {
    29         //业务代码
    30     }
    31     
    32 }
    33 
    34 class XMLFileB implements File{
    35 
    36     @Override
    37     public void method() {
    38         //业务代码
    39     }
    40     
    41 }
    42 
    43 //抽象工厂接口
    44 interface Factory{
    45     public File getFile(String type);
    46 }
    47 
    48 //具体工厂类
    49 class HTMLFactory implements Factory{
    50 
    51     @Override
    52     public File getFile(String type) {
    53         if("A".equals(type))
    54             return new HTMLFileA();
    55         else if("B".equals(type))
    56             return new HTMLFileB();
    57         else
    58             return null;
    59     }
    60     
    61 }
    62 
    63 class XMLFactory implements Factory{
    64 
    65     @Override
    66     public File getFile(String type) {
    67         if("A".equals(type))
    68             return new XMLFileA();
    69         else if("B".equals(type))
    70             return new XMLFileB();
    71         else
    72             return null;
    73     }
    74     
    75 }
  • 相关阅读:
    JOptionPane&&Exception的使用
    CppUnit在VS2010上的正确使用
    怎样认识比你优秀的人并和他们成为朋友呢?
    二十岁出头的时候上,你一无所有,你拥有一切。
    C语言实现文件复制
    关于二维数组可以开多大
    exit(0)与exit(1)、return区别
    学语言究竟学什么?
    当oracle出现 格式与字符串格式不匹配解决办法
    javascript的系统函数
  • 原文地址:https://www.cnblogs.com/gsbm/p/4771853.html
Copyright © 2011-2022 走看看