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

运行结果

相关推荐
rongqing20193 分钟前
Google 智能体设计模式:学习和适应
设计模式
笨手笨脚の1 小时前
设计模式-状态模式
设计模式·状态模式·行为型设计模式
WangMing_X2 小时前
《使用模块化分层来达到企业级项目要求》
开发语言·c#
破晓之翼3 小时前
控制论的定义、工程意义及系统功能整合
设计模式·软件工程·产品经理·学习方法
bkspiderx4 小时前
C++设计模式之行为型模式:状态模式(State)
c++·设计模式·状态模式
c#上位机4 小时前
wpf之ToggleButton控件
c#·wpf
mit6.82414 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
rongqing201915 小时前
Google 智能体设计模式:人机协同(HITL)
设计模式
beyond谚语16 小时前
C#学习小笔记(完整版)—— Patience
c#
王嘉俊92516 小时前
设计模式--享元模式:优化内存使用的轻量级设计
java·设计模式·享元模式