zoukankan      html  css  js  c++  java
  • 关于面向对象的一些想法

    这两天在写程序,一直在想模块之间的信息交流到底用什么方式,GUI中接收到的数据如何才能和逻辑层中的业务进行交流,一开始我使用的是字符串,感觉这种方式很不好,于是开始考虑使用对象来传递消息。

    使用字符串是一开始编程的时候很容易想到的,很直观简单,可是使用的时候就不是这个样子了,使用字符串的话,模块之间的耦合会加大,不利于软件的更改。比如说我现在遇到的情况。一开始用户只需要选择要比较的图层和要比较的属性项,可是现在要增加一个容限值(tolerance)参数,我的修改就很麻烦了。

                //GUI中的对象,_selectedFeatrClsesList,_slctedFieldsList是用户选中的信息
    Stopwatch sw = new Stopwatch(); sw.Reset(); sw.Start(); bool isRunOk = _bussinessProcess.Run(_selectedFeatrClsesList, _slctedFieldsList);//执行逻辑比较操作 sw.Stop();

      

     1 public bool Run(IList<string> slctedFeatr, IList<string> cmprFlds)
     2         {
     3             AttributeCompare attrCompr = new AttributeCompare(_mxDoc, slctedFeatr, cmprFlds);
     4             string saveFilePath = ShowSaveDialog();
     5 
     6             if (saveFilePath == string.Empty)
     7             {
     8                 return false;
     9             }
    10             else
    11             {
    12                 attrCompr.ExcuteCompare(saveFilePath);
    13 
    14                 return true;
    15             }
    16         }

    如果要添加参数的话,就需要再修改run函数的参数,很不方便,如果写一个args类,就只需要在界面层中增加tolerance参数即可。而对其他的类没有影响。

  • 相关阅读:
    vs整合MySQL和QT
    VS2019中QT连接及使用
    JavaScript 进阶入门
    解决MySQL workbench的resultgird不出现的问题
    JavaScript入门
    CSS学习
    Linux下如何查看tomcat是否启动、查看tomcat启动日志
    oracle常见的函数
    java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter
    位运算(&、|、^、~、>>、<<)
  • 原文地址:https://www.cnblogs.com/353373440qq/p/3530509.html
Copyright © 2011-2022 走看看