【C#设计模式(5)——原型模式(Prototype Pattern)】

前言

C#设计模式(5)------原型模式(Prototype Pattern)

通过复制现在有对象来创造新的对象,简化了创建对象过程。

代码

csharp 复制代码
//原型接口
public interface IPrototype
{
    IPrototype Clone();
}
//文件管理类
public class FileManager: IPrototype
{
    private string fileName;
    public string FileName { get => fileName; set => fileName = value; }
    public FileManager(string fileNmae)
    {
        this.FileName = fileNmae;
    }
    public IPrototype Clone()
    {
        try
        {
            return (IPrototype)this.MemberwiseClone();
        }
        catch (System.Exception ex)
        {
            return null;
        }
    }
}

/*
 * 原型模式:Prototype Pattern
 */
internal class Program
{
    static void Main(string[] args)
    {
        FileManager prototype = new FileManager("新建文件");
        FileManager prototypeCopy = (FileManager)prototype.Clone();

        prototypeCopy.FileName = "新建文件-副本";

        Console.WriteLine($"hash[{prototype.GetHashCode()}],原文件名:{prototype.FileName}");
        Console.WriteLine($"hash[{prototypeCopy.GetHashCode()}],备份文件名:{prototypeCopy.FileName}");

        Console.ReadLine();
    }
}

运行结果

相关推荐
小杨快跑~12 小时前
从装饰者到桥接再到工厂:模式组合的艺术
java·开发语言·设计模式
海中有金12 小时前
设计模式[2]——抽象工厂模式一分钟说清
设计模式·抽象工厂模式
m5655bj13 小时前
通过 C# 将 RTF 文档转换为图片
开发语言·c#
海中有金14 小时前
设计模式[1]——分类&口诀
设计模式·原型模式
MM_MS14 小时前
WinForm+C#小案例--->写一个记事本程序
开发语言·计算机视觉·c#·visual studio
浪客川17 小时前
高效日志分离器:一键筛选关键信息
开发语言·windows·c#
小熊熊知识库17 小时前
C# EF.core 介绍以及高性能使用
开发语言·c#
雨疏风骤124018 小时前
【FreeRTOS】任务、任务状态
开发语言·stm32·c#·rtos
雨中飘荡的记忆18 小时前
设计模式之代理模式详解
设计模式·代理模式
️公子19 小时前
传奇游戏集成系统
游戏·c#