• 静态方法 是可重用代码还是模块


           比如,有个静态方法
           public class StaticTest{
                  public static void Test(){}
           }

          这个是可重用代码还是模块呢?恐怕不好说。因为,可重用代码和模块非常相似。怎么区分这两个概念?还真是头疼。委托就是一种可重用的代码,而委托的方法,则是模块。事件,Handler是可重用方法,而event是模块,可以这样理解?

          可重用代码也就是可以适用于不同上下文的代码,而模块呢是指功能分离成快的方法。可以看出最起码在编码中方法调用的次数,可重用的方法适用次数要大于等于模块方法。

            public class Test{
                   public static void DoMethodA(){}
                   public static void DoMethodB(){DoMethodA();}
          }

          public class TestA{
                   public void DO(){Test.DoMethodB();};
            }
           public class TestB{
                    public void DO(){Test.DoMethodB();};
          }
           Test类有两个方法,DoMethodA 和DoMethodB,DoMethodB使用了DoMethodA。在上面的代码中虽然在运行时执行次数上来说DoMethodA和DoMethodB应该是次数相同的,但是,DoMethodB得引用次数要高于DoMethodA。可以认为在上面的代码DoMethodA是模块,而DoMethodB是可重用代码。假如把DoMethodA的修饰符修改为private,那么就更加可以说明问题了。

           从上面代码可以看出一个什么问题呢?假如修改了DoMethodB方法会导致什么问题?很可能需要修改任何使用了DoMethodB方法的代码。可见DoMethodB难于修改,因为它的应用次数过多,很难保证某一个地方不出现逻辑错误。
           而模块就要好很多啦,修改DoMethodA,只需要在DoMethodB方法中进行修正就可以了。
           那么把可重用代码尽量拆分成多个模块是不是更加方便呢?我认为是的。我认为把可重用代码分解为多个模块可以让代码更加易于修改。

           对于运行时多次使用的方法,应该定义为静态方法,但是可能在代码中只使用了一次,因此,静态方法完全可以是模块而不是可重用代码。

           对于可重用代码,模块,和静态,不是一定要把可重用代码设计为静态的,是不是设计为静态应该由代码运行时,估计的执行次数来决定。而可重用代码是提炼相同逻辑而来。至于模块么,只是让代码更加易于理解和维护。

    水平原因,思路可能不够清晰,希望和大家多多交流。
  • 相关阅读:
    【NodeJS】---express配置ejs mongoose route等
    【CSS3】---层模型position之fixed固定定位、absolute绝对定位和relative相对定位
    【CSS3】---:before :after生成内容
    px转rem的填坑之路
    markdown编写文件目录结构
    js reduce数组转对象
    处理Promise.reject()
    js事件循环
    为什么[] == false 为true
    为什么不建议用var
  • 原文地址:https://www.cnblogs.com/birdshover/p/966369.html
Copyright © 2020-2023  润新知