zoukankan      html  css  js  c++  java
  • 迪米特法则(Law of Demeter)LoD

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace LawOfDemeter
    {
        //也叫Least Knowledge Principle ,LKP(最少知识原则)
        //Only talk to your immediate friends
        //一个类应该对自己需要耦合或者调用的类知道的最少,你的内部是如何复杂都对我没关系,那是你的事,我就知道你提供这么多的public方法,我就调用这么多,其他的我一概不关心。
        class Program
        {
            //试想这么一个场景:我们去银行取钱,当然是直接找前台业务员,和他说我要取钱,然后输入一个密码即可,至于钱是如何出来的,我们应该是无法知道了,也不必知道。
            //不应该跳过业务员直接和银行打交道,在这个业务里,我们只和业务员有关系。
            static void Main(string[] args)
            {
                BankClerk bc = new BankClerk();
                bc.DrawMoney(500);
            }
        }
    
        //银行,钱从里面出,当然,出钱的过程更加复杂,我们也不必知道。
        class Bank
        {
            public void DrawMoney(int value)
            {
                Console.WriteLine("银行出钞" + value + "");
            }
        }
    
        //业务员
        class BankClerk
        {
            private Bank bank = new Bank();
            //取钱
            public void DrawMoney(int value)
            {
                //银行内部的业务逻辑应该设为私有,和我们无关,他们自己的取钱规定步骤让他们自己完成。
                //我们只管按照业务员的要求取钱即可。
                DrawMoneyFirstStep();
                DrawMoneySecondStep();
                DrawMoneyThirdStep(value);
            }
    
            //第一步
            private void DrawMoneyFirstStep()
            {
                Console.WriteLine("业务员正在查询您的存折资料");
            }
    
            //第二步
            private void DrawMoneySecondStep()
            {
                Console.WriteLine("请输入您的银行密码");
                Console.ReadLine();
                Console.WriteLine("输入成功,验证成功。");
            }
    
            //第三步
            private void DrawMoneyThirdStep(int value)
            {
                Console.WriteLine("业务员从银行钞票机取钱");
                bank.DrawMoney(value);
                Console.WriteLine("取款成功,这是您的" + value + "");
            }
        }
    }
  • 相关阅读:
    Servlet的生命周期
    Servlet中的请求与响应
    Servlet中的相关的配置文件信息:
    转发与重定向的区别,笔记无法转过来,所以直接放链接了,可以直接查看
    JSP入门中的一些案例代码:
    一些已经有些模糊的小知识(一)
    JSP入门五之request,out,response对象的应用
    JSP入门四
    JSP入门三 不知道如何将笔记同步过来只能这样了
    来自(乐唯科技)的面试问题..
  • 原文地址:https://www.cnblogs.com/leestar54/p/5591597.html
Copyright © 2011-2022 走看看