zoukankan      html  css  js  c++  java
  • 简单工厂+抽象工厂

    抽象工厂的一个很简单的应用,这久公i司的项目中可能用到不同的打印机,不同的打印机可能打印方法有所改变,自己优化了下原来的代码:

    打印接口:

    Code
     interface Iprint
        {
             
    void Print();
        }

    实现接口的USB打印机类:

    Code
     public  class UsbPrinter:Iprint
        {
            
    #region Iprint 成员

            
    public void Print()
            {
                Console.WriteLine(
    "I am UsbPrinter");
            }

            
    #endregion
        }

    实现接口的COM口打印机类:

    Code
    public class ComPrinter:Iprint
        {
            
    #region Iprint 成员

            
    public void Print()
            {
                Console.WriteLine(
    "I am ComPrinter");
            }

            
    #endregion
        }

    工厂类:

    Code
     class PrinterHandle
        {
            
    private static string PrintType = System.Configuration.ConfigurationManager.AppSettings["printerType"];
            
    public static Iprint GetPrinter()
            {
                
    switch (PrintType)
                {
                    
    case "usb":
                        
    return new UsbPrinter();
                        
    break;
                    
    case "com":
                        
    return new ComPrinter();
                        
    break;
                    
    default:
                        
    return new UsbPrinter();
                        
    break;
                }
            }
        }

    客户端调用:

    Code
     PrinterHandle.GetPrinter().Print();

    配置文件:

    Code
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        
    <appSettings>
            
    <add key ="printerType" value="com"/>
           
    </appSettings>
    </configuration>

    呵呵,很简单的应用,但是感觉结构清晰了好多,便于维护。

  • 相关阅读:
    win7-64位,vs32位,odbc 连接oracle问题总结
    vscode 格式化代码
    vue 自动切换导航图
    Unexpected console statement
    css flex 布局之---骰子
    vue百度地图在IE11下空白
    css使用font-face
    centos7计划任务
    MySQL(Mariadb)主从同步基础
    Ubuntu(16.04) 常见问题
  • 原文地址:https://www.cnblogs.com/shineqiujuan/p/1605711.html
Copyright © 2011-2022 走看看