zoukankan      html  css  js  c++  java
  • Refactoring #001 Extract Method

    Example

        public void startup() {
            ServerSocket serverSocket = null;
            try {
                serverSocket = new ServerSocket(10000);
                System.out.println("The server is listening on 10000 port ...");
                while (true) {
                    serve(serverSocket.accept());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    /

        private ServerSocket createServerSocket(final int port) throws IOException {
            ServerSocket result = new ServerSocket(port);
            return result;
        }
    
        private void printPrompt(final String prompt) {
            System.out.println(prompt);
        }
    
        private void startWorking(final ServerSocket serverSocket) throws IOException {
            while (true) {
                Socket socket = serverSocket.accept(); // 关于引用放 while外面还是里面有激烈的争论,我的结论是放里面。
                createServerThread(socket);
            }
        }
    
        public void startup() {
            try {
                ServerSocket serverSocket = createServerSocket(PORT);
                printPrompt("The server is listening on " + PORT + " port ...");
                startWorking(serverSocket);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    Note

    为什么要 Extract Method?主要体现在“可读性”和“代码复用”上:

    1. 函数的粒度越小被复用的机会越大
    2. 免去写注释,因为代码读起来就像是一系列注释
    3. 如果函数都是细粒度,方便覆写(ps.这条不理解)

    Extract Method 的手段:

    1. 直接提取一段代码。(用一个方法代替注释)
    2. 把局部变量作为参数传递给方法。
    3. 把对局部变量的操作转化为一个查询。(类似于 getOutputcreateXxx
  • 相关阅读:
    算法70----只有两个键的键盘【动态规划】
    Shell
    Shell
    Shell
    Shell
    Shell
    Tools
    Jenkins
    Java
    Product
  • 原文地址:https://www.cnblogs.com/xkxf/p/8275125.html
Copyright © 2011-2022 走看看