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

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

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

    水平原因,思路可能不够清晰,希望和大家多多交流。
  • 相关阅读:
    Python中的类(上)
    Django REST Framework API Guide 07
    Django REST Framework API Guide 06
    Django REST Framework API Guide 05
    Django REST Framework API Guide 04
    Django REST Framework API Guide 03
    Django REST Framework API Guide 02
    Django REST Framework API Guide 01
    Django 详解 信号Signal
    Django 详解 中间件Middleware
  • 原文地址:https://www.cnblogs.com/birdshover/p/966369.html
Copyright © 2011-2022 走看看