zoukankan      html  css  js  c++  java
  • 模板方法设计模式:定义抽象类-模板:定义业务流程,执行步骤--》各业务类继承抽象类,实现各自不同 具体的执行步骤

    1.定义抽象类-模板:定义业务流程,执行步骤,各业务类继承抽象类,实现各具体的执行步骤

    /// <summary>
    /// 银行客户端
    /// </summary>
    public abstract class Client
    {
    public void Query(int id, string name, string password)
    {
    if (this.CheckUser(id, password))
    {
    double balance = this.QueryBalance(id);
    double interest = this.CalculateInterest(balance);
    this.Show(name, balance, interest);
    }
    else
    {
    Console.WriteLine("账户密码错误");
    }
    }

    public bool CheckUser(int id, string password)
    {
    return DateTime.Now < DateTime.Now.AddDays(1);
    }

    public double QueryBalance(int id)
    {
    return new Random().Next(10000, 1000000);
    }

    /// <summary>
    /// 活期 定期 利率不同
    /// </summary>
    /// <param name="balance"></param>
    /// <returns></returns>
    public abstract double CalculateInterest(double balance);

    public virtual void Show(string name, double balance, double interest)
    {
    Console.WriteLine("尊敬的{0}客户,你的账户余额为:{1},利息为{2}",
    name, balance, interest);
    }
    private void show(string name, double balance, double interest)
    {
    Console.WriteLine("尊贵的{0} vip客户,您的账户余额为:{1},利息为{2}",
    name, balance, interest);
    }

    }

    2------------- 子类继承抽象类,实现不同的步骤

    /// <summary>
    /// 银行客户端
    /// </summary>
    public class ClientVip : Client
    {
    /// <summary>
    /// 活期 定期 利率不同
    /// </summary>
    /// <param name="balance"></param>
    /// <returns></returns>
    public override double CalculateInterest(double balance)
    {
    return balance * 0.005;
    }

    public override void Show(string name, double balance, double interest)
    {
    Console.WriteLine("尊贵的{0} vip客户,您的账户余额为:{1},利息为{2}",
    name, balance, interest);
    }
    }

    3.----------调用-------

    {
    Client client = new ClientCurrent();
    client.Query(387, "22, "123456");
    }
    {
    Client client = new ClientRegular();
    client.Query(448, "11", "000000");
    }

  • 相关阅读:
    第十五节 css3动画之animation简单示例
    第十四节 css3动画之animation
    第十三节 css3动画之翻页动画
    第十二节 css3动画之三维X轴旋转
    第十一节 css3动画之三维Y轴旋转
    第十节 css3动画之transform斜切
    第九节 css3动画之transform旋转
    第八节 css3动画之transform缩放
    ECMAScript基本语法——⑤运算符 比较运算符
    ECMAScript基本语法——⑤运算符 赋值运算符
  • 原文地址:https://www.cnblogs.com/csj007523/p/14418543.html
Copyright © 2011-2022 走看看