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

运行结果

相关推荐
车载测试工程师20 小时前
CAPL学习-ETH功能函数-方法类2
网络·网络协议·学习·c#·以太网·capl·canoe
在路上看风景20 小时前
1.12 多线程和异步编程
c#
开心香辣派小星20 小时前
23种设计模式-19策略模式(Strategy Pattern)
java·设计模式·策略模式
曹牧20 小时前
Java:list<map<string,sting>>与C#互操作
java·c#·list
勇气要爆发1 天前
物种起源—JavaScript原型链详解
开发语言·javascript·原型模式
AAA阿giao1 天前
JavaScript 原型与原型链:从零到精通的深度解析
前端·javascript·原型·原型模式·prototype·原型链
烛阴1 天前
C#异常概念与try-catch入门
前端·c#
yue0081 天前
C# Environment类的介绍
开发语言·c#·environment
c#上位机2 天前
halcon图像去噪—高斯滤波
c#·上位机·halcon·机器视觉
神奇的板烧2 天前
Java泛型不变性引发的类型转换问题及解决方案
java·c#