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

运行结果

相关推荐
小白不太白9501 小时前
设计模式之 代理模式
设计模式·代理模式
吃汉堡吃到饱1 小时前
【创建型设计模式】工厂模式
设计模式
程序员与背包客_CoderZ1 小时前
C++设计模式——Singleton单例模式
c语言·开发语言·c++·单例模式·设计模式
菜鸟、小高2 小时前
从0开始学PHP面向对象内容之常用设计模式(适配器,桥接,装饰器)
android·设计模式·php
无所谓จุ๊บ2 小时前
树莓派开发扩展十二 -C#编写客户端控制小车 Xamarin.Forms
c#·xamarin
创码小奇客5 小时前
小小工厂模式 轻松拿捏
java·后端·设计模式
创码小奇客5 小时前
《Java 策略模式的 “高阶魔法秀”》
java·后端·设计模式
Lx3526 小时前
C# 一分钟浅谈:GraphQL API 与 C#
后端·c#
AitTech6 小时前
C#动态类型详解:应用场景与注意事项
开发语言·c#
zzzhpzhpzzz9 小时前
设计模式——数据访问对象模式
设计模式