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

运行结果

相关推荐
Deschen1 小时前
设计模式-工厂模式
设计模式·简单工厂模式
阿无,1 小时前
Java设计模式之工厂模式
java·开发语言·设计模式
晚枫~3 小时前
零基础快速上手Playwright自动化测试
javascript·python·测试工具·c#·自动化
爱编程的鱼3 小时前
C# 变量详解:从基础概念到高级应用
java·算法·c#
Camel卡蒙3 小时前
DDD架构——充血模型、领域模型
java·设计模式·架构
rongqing20194 小时前
Google 智能体设计模式:目标设定与监控
设计模式
cimeo4 小时前
【C学习】13-数组使用与运算
学习·c#
weixin_445476685 小时前
一天一个设计模式——开闭原则
服务器·设计模式·开闭原则
李广坤5 小时前
模板方法模式(Template Method Pattern)
设计模式
冰糖雪梨dd6 小时前
JS中new的过程发生了什么
开发语言·javascript·原型模式