【发布时间】:2017-10-17 16:31:06
【问题描述】:
我正在尝试应用装饰器模式来制作将单词加密为某种加密的对象,例如 L337 方法,该方法将 9 替换为 g 或 4 替换为 r。基本上,我想在输入字段中输入一个单词并在文本对象中显示加密的单词。但我无法让 L337 装饰器从主装饰器类继承。它不接受关键字“super”,所以我尝试了基本词,但是当我实现加密时,它不会接受对象 newEncryption。有人可以帮我弄清楚如何将这种模式放在一起吗?
我基本上知道装饰器模式是什么。它是制作一个对象,制作一个基本的装饰器,制作一个特定的装饰器,并用独特的方法和特性的装饰来实例化对象。
public class Encryption : MonoBehaviour
{
public static InputField inputBox;
public static Text outputText;
public interface IEncryption { void Encrypt(); }
public class TextEncryption : IEncryption
{
public void Encrypt()
{
string currentText = inputBox.text;
outputText.text = currentText;
}
}
public abstract class encryptionDecorator : IEncryption
{
protected IEncryption tempEncryption;
public encryptionDecorator(IEncryption newEncryption)
{
tempEncryption = newEncryption;
}
public void Encrypt()
{
tempEncryption.Encrypt();
}
}
public class L337EncryptionDecorator : encryptionDecorator
{
public L337EncryptionDecorator(IEncryption newEncryption) : base(newEncryption)
{
print("Encrypting L337 Code");
}
public void Encrypt()
{
}
}
}
【问题讨论】: