行为型/模板模式/Sample1.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DesignModeConsole.行为型.模板模式;

/*
 * 模板模式作用之一 代码复用
 * 当一个算法逻辑里面的代码基本相同,那么就可以将其拆分为多个方法,然后将公共代码抽离到基类中,子类继承基类重写不同的代码
 * 
 */

/// <summary>
/// 未拆分时候的逻辑
/// </summary>
public class OldClass
{
    public void Run(int i)
    {
        Console.WriteLine("进行一些公共的逻辑处理代码");

        if (i == 1)
        {
            Console.WriteLine("处理i等于1的时候逻辑");
        }
        else if (i == 2)
        {
            Console.WriteLine("处理i等于2的时候逻辑");
        }
    }
}

/// <summary>
/// 拆分后逻辑
/// </summary>
public class NewClass
{
    public void Run(int i)
    {
        if (i == 1)
        {
            AbstractClass abstractClass = new ConcreteClass1();
            abstractClass.Run();
        }
        else if (i == 2)
        {
            AbstractClass abstractClass = new ConcreteClass2();
            abstractClass.Run();
        }
    }
}

/// <summary>
/// 将公有代码抽取到基类中
/// </summary>
public abstract class AbstractClass
{
    /// <summary>
    /// 模板方法,不要把模版方法定义为Virtual或abstract方法,避免被子类重写,防止更改流程的执行顺序
    /// </summary>
    public void Run()
    {
        Method0();
        Method1();
后面还有 47 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。