原型模式

Tulenber 10 July, 2020 ⸱ Beginner ⸱ 2 min ⸱ 2019.4.2f1 ⸱

我们继续讨论模式,并讨论原型,而不是Unity中最流行的原型。

理论

原型模板的目的是通过克隆现有对象来创建新对象。 通常,它是通过提供克隆对象本身的接口来实现的。 此过程的主要问题是,由于复制依赖对象的机制不明显或缺少对内部字段的访问,因此很难从对象外部进行克隆。 但是,如果您专注于“ Prototype”这个名称,那么很明显,使用预制来创建新对象只不过是使用了此模板,因为Unity为我们提供了克隆内部字段的能力。^_^

更多的理论可以在本文或罗伯特·尼斯特罗姆(Robert Nystrom)的这一章中找到

实作

.Net中此模板的基础是ICloneable接口,该接口包含对一个方法对象object Clone ();的描述。

举个例子,让我们看一下从Monster类继承的Skeleton的简化实现,该类又从MonoBehaviour继承。 现在,有了一个骨架,我们就可以组建亡灵大军。^_^

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using UnityEngine;

public class Skeleton : Monster, ICloneable
{
    //...

    // Start is called before the first frame update
    void Start()
    {
        //...
    }

    // Update is called once per frame
    void Update()
    {
        //...
    }

    public object Clone()
    {
        // 这可能是复制骨架的更复杂逻辑
        return Instantiate(this);
    }
}

结论

这是一篇很小的文章,旨在引起您对模式与使用Unity的主要方法之一之间的关系的关注。下次见!^_^


如果您喜欢这篇文章,可以为它提供支持



Privacy policyCookie policyTerms of service
Tulenber 2020