# -*- coding: utf-8 -*-
# !/usr/bin/env python3
"""
@Author  : ziheng.ni
@Time    : 2021/2/9 10:31
@Contact : nzh199266@163.com
@Desc    : 原型模式
"""

# 原型模式
# 也叫“克隆”、“Clone”、“Prototype”。
# 使我们能够复制已有对象，而又无需让代码依赖他们所属的类。


# 业务场景
# 1. 必须遍历对象所有的属性才能复制该对象，但是一些私有属性在对象外部不可见，无法获取。
# 2. 一般我们只知道对象实现了哪些接口，而不知道所属的具体类。


# 解决方案
# 原型模式将克隆过程委派给被克隆的实际对象。
# 该模式为所有支持克隆的对象声明了一个通用接口，该接口可以让你克隆对象，同时又无需将代码和对象所属类耦合。
# 通常，这样的接口仅包含一个克隆方法。


# 注意
# 如果克隆包含了循环引用的复杂对象可能会非常麻烦，建议不对复杂对象克隆。
