private void button1_Click(object sender, System.EventArgs e)
{
Clipboard.SetDataObject(textBox1.Text,true);
}
private void button2_Click(object sender, System.EventArgs e)
{
if(Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))
textBox1.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();
else
textBox1.Text = "The clipboad does not contain any text";
}
我使用C#Windows Form Application
编写此应用程序答案 0 :(得分:3)
让我们谈谈模式和邪教。
你会听到很多关于“学习设计模式”和“如果你不使用设计模式就吮吸”和“你应该使用X模式”等等。有一个完整的模式运动正在进行......一个邪教,甚至......鼓励人们模仿一切。说这是人们应该做的事情。对于所有事情都有一种模式,并且通过$ DEITY,你应该使用它。
猜猜是什么?其中约80%是垃圾。他们过分强调设计模式的作用和范围。模式是工具。而已。他们不是自己存在的理由。它们不是世界和平的关键。它们不是所有问题的解决方案,你不应该只因为它们在那里使用它们,或者因为你喝了邪教徒的Kool-Aid。你应该只在因为它们是你需要做的工作时才使用它们,因此它们是有意义的。
设计模式的整体目的 - 仅用于 目的 - 是为了降低整体复杂性。* 无论他们不这样做,他们都不合适,你应该忽略它们。
因此,每当您考虑使用某种特定模式时,请问自己一个最重要的问题:如何简化事情?
*注意,我说整体复杂性。应用设计模式通常会增加应用程序的一部分的复杂性,以便从其他部分中删除更多的部分。只要存在复杂性的净损失,该模式仍然值得关注。
现在,关于你的代码。
您已经询问过如何更改该小片段以使用Command模式。我想这是可能的;我看到“复制”和“粘贴”动作,可以想象通过对文本框的引用进行参数化。
问题是:如何简化事情?
除了该片段之外没有任何上下文,我不知道如何通过添加CopyCommand和PasteCommand类以及代码来实例化并在一个地方使用它们。也许当你在其他地方进行大量的复制和粘贴时,它可能是值得的......但是现在,没有。感觉就像你试图在一个不想去的地方兜售一个模式。
答案 1 :(得分:0)
使用命令设计模式编写此内容的正确方法是什么?
首先,阅读并理解cHao在他的答案中所写的内容。 (他并不是说设计模式很糟糕。他说很多人使用和谈论使用设计模式的方式很糟糕。我同意...... )
你的问题没有一个好的答案:
首先,您需要问问自己为什么要在这里尝试使用任何设计模式。如果你只是因为你被告知使用设计模式是一件好事,那你就是出于错误的原因。
其次,重复用“命令设计模式”替换“任何设计模式”的问题......你想通过应用这种特殊的设计模式来实现这一目标?如果你不能回答这个问题,那么你需要1)返回并查看命令设计模式,理解它实现的目标,然后2)然后决定你是否真的需要它在你的实现中取得的成就程序
如果我要直接回答你的初步和后续问题,我不得不说: