软件架构设计日记(2)

 这几天对老的条码打印模块进行优化,优化过程简述如下

 

这是老的模块的类结构示意图

 

 

 

 

 

 

 

如果打印机类型或标签增加,标签类将成倍,容易造成类爆炸, 因此 ,使用泛型,进行如下优化

 

 

 

接口 Iprint 代码如下

 

 public interface Iprint<T> where T:I打印机, new()
    {
        void pring(STUpringData data);
    }

 

 

 

 

虚基类 printbase 代码如下

 public abstract class printbase<T> : Iprint<T> where T:I打印机,new()
    {

.............

    }

 

 

这样,不会造成类爆炸,降低了耦合性,

另外,添加了一个结构放置数据,这样,添加打印数据,不会影响接口,提高可维护性。数据 方法 分离

最后,

添加统一调用方法,封装成组件

 

 public static  void print(string printertype, string labeltype, STUpringData data)
        {
            WindowsFormsApplication2.Iprint<WindowsFormsApplication2.ZPL打印机> priz = null; ;
            WindowsFormsApplication2.Iprint<WindowsFormsApplication2.APL打印机> pria = null; ;

            switch (printertype)
            {
           
                case "zpl":
                    switch (labeltype)
                    {
                   
                        case "c":
                            priz = new WindowsFormsApplication2.产品标签<WindowsFormsApplication2.ZPL打印机>();
                            break;
                        case "b":
                            priz = new WindowsFormsApplication2.备件标签<WindowsFormsApplication2.ZPL打印机>();

                            break;
                        case "h":
                            priz = new WindowsFormsApplication2.耗材标签<WindowsFormsApplication2.ZPL打印机>();

                            break;
                    }
                    priz.pring(data);
                    break;
                case "apl":
                    switch (labeltype)
                    {

                        case "c":
                            pria = new WindowsFormsApplication2.产品标签<WindowsFormsApplication2.APL打印机>();
                            break;
                        case "b":
                            pria = new WindowsFormsApplication2.备件标签<WindowsFormsApplication2.APL打印机>();
                            break;
                        case "h":
                            pria = new WindowsFormsApplication2.耗材标签<WindowsFormsApplication2.APL打印机>();
                            break;
                    }
                    pria.pring(data);
                    break;
           
           
            }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值