zoukankan      html  css  js  c++  java
  • 静态方法 是可重用代码还是模块

           比如,有个静态方法
           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方法中进行修正就可以了。
           那么把可重用代码尽量拆分成多个模块是不是更加方便呢?我认为是的。我认为把可重用代码分解为多个模块可以让代码更加易于修改。

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

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

    水平原因,思路可能不够清晰,希望和大家多多交流。
  • 相关阅读:
    【SaltStack官方版】—— MANAGING THE JOB CACHE
    《SaltStack技术入门与实践》—— 实践案例 <中小型Web架构>2 Keepalived
    《SaltStack技术入门与实践》—— 实践案例 <中小型Web架构>1 初始化和Haproxy
    《SaltStack技术入门与实践》—— Peer
    多台主机之间共用私钥,实现免密登陆
    王者荣耀冒险模式刷金币
    2019-03-26 SpringBoot项目部署遇到跨域问题,记录一下解决历程
    关于gitignore无效的一些记录
    vlookup
    ubuntu ifconfig只有lo没有ens33的问题
  • 原文地址:https://www.cnblogs.com/birdshover/p/966369.html
Copyright © 2011-2022 走看看