当前位置: 首页 > article >正文

【C#设计模式(5)——原型模式(Prototype Pattern)】

前言

C#设计模式(5)——原型模式(Prototype Pattern)
通过复制现在有对象来创造新的对象,简化了创建对象过程。

代码

//原型接口
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();
    }
}

运行结果

在这里插入图片描述


http://www.kler.cn/a/392453.html

相关文章:

  • HBase理论_背景特点及数据单元及与Hive对比
  • 三正科技笔试题
  • 什么是数字图像?
  • 使用jmeter查询项目数据库信息,保存至本地txt或excel文件1108
  • 设计模式:工厂方法模式和策略模式
  • 24/11/12 算法笔记<强化学习> Policy Gradient策略梯度
  • ubuntu24.04安装matlab失败
  • PDF 转 Word——10个实用优质工具大揭秘!
  • 大数据学习13之Scala基础语法(重点)
  • Redis做分布式锁
  • day12:版本控制器
  • 检测敏感词功能
  • CelebV-Text——从文本生成人脸视频的数据集
  • 2024 年 Postman 进行 Websocket 接口测试的图文教程
  • 激活函数解析:神经网络背后的“驱动力”
  • 练习LabVIEW第四十三题
  • 从0开始深度学习(26)——汇聚层/池化层
  • A. Turtle and Good Strings
  • 富格林:可信预判交易安全契机
  • P2356 弹珠游戏
  • HarmonyOS NEXT应用元服务开发Intents Kit(意图框架服务)上架配置指导
  • STM32 4X4 键盘
  • Elasticsearch常用接口_添加数据
  • 会议直击|美格智能受邀出席第三届无锡智能网联汽车生态大会,共筑汽车产业新质生产力
  • 一生一芯 预学习阶段 NEMU代码学习(2)
  • C++总结