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

运行结果

相关推荐
鱼干~5 分钟前
【全栈知识点】全栈开发知识点
前端·人工智能·c#
如来神掌十八式39 分钟前
设计模式之装饰器模式
java·设计模式
yu85939581 小时前
WinForm 嵌入 WordExcel 实现方案
开发语言·microsoft·c#
躺平的赶海人1 小时前
C# 客户端性能优化(一):CPU 利用率获取与监控
c#
rockey6278 小时前
AScript如何实现中文脚本引擎
c#·.net·script·eval·expression·function·动态脚本
我是唐青枫10 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net
unicrom_深圳市由你创科技11 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
昵称暂无111 小时前
.NET 高级开发 | i18n 原理、实现一个 i18n 框架
javascript·c#·.net
疯狂成瘾者12 小时前
Chroma向量数据库
开发语言·数据库·c#
我是唐青枫12 小时前
C#.NET Monitor 与 Mutex 深入解析:进程内同步、跨进程互斥与使用边界
开发语言·c#·.net