【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();
    }
}

运行结果

相关推荐
就是有点傻6 小时前
使用PaddleOCRSharp大模型精选文字识别
c#
LeonDL1686 小时前
【通用视觉框架】基于C#+Winform+OpencvSharp开发的视觉框架软件,全套源码,开箱即用
人工智能·c#·winform·opencvsharp·机器视觉软件框架·通用视觉框架·机器视觉框架
乐悠小码8 小时前
Java设计模式精讲---02抽象工厂模式
java·设计模式·抽象工厂模式
数据的世界018 小时前
技术变革:为何C#与.NET是未来的开发方向
java·c#·.net
大龄Python青年8 小时前
C#快入教程:Linux安装.NET
linux·c#·.net
我是唐青枫9 小时前
C#.NET Random 深入解析:随机数生成原理与最佳实践
c#·.net
光头闪亮亮9 小时前
电子发票解析工具-c#桌面应用开发案例详解
c#
咕白m62510 小时前
如何通过 C# 提取 PDF 图片?单页与全文档提取
c#·.net
时光追逐者14 小时前
【拾遗补漏】.NET 常见术语集
微软·c#·.net
秋雨雁南飞15 小时前
c# 使用Memory实现Redis入队出队功能
redis·c#