战略模式和命令模式有什么区别? 我也在Java中寻找一些例子。
我一直在阅读战略模式,并有一个问题。 我已经在下面实现了一个非常基本的控制台应用程序来解释我在问什么。 我已经读到,在实施战略模式时,“切换”语句是一个红旗。 然而,在这个例子中,我似乎无法摆脱开关语句的束缚。 我错过了什么吗? 我能够从铅笔删除逻辑,但我的主现在有一个switch语句。 我明白,我可以轻松地创build一个新的TriangleDrawer类,而不必打开铅笔类,这是很好的。 但是,我需要打开Main,以便知道将哪种types的IDrawer传递给铅笔 。 这只是如果我依靠用户input需要做什么? 如果没有switch语句的话,我很乐意看到它! class Program { public class Pencil { private IDraw drawer; public Pencil(IDraw iDrawer) { drawer = iDrawer; } public void Draw() { drawer.Draw(); } } public interface IDraw { void Draw(); } public class CircleDrawer : IDraw { public void Draw() { Console.Write("()\n"); } […]
策略模式和dependency injection都允许我们在运行时设置/注入对象。 战略模式和dependency injection之间有什么区别?
任何人都可以解释工厂和战略模式之间的区别吗? 对于我来说,除了额外的工厂类别(它们以工厂模式创build产品对象)之外,
这两种devise模式都封装了一个algorithm,并将实现细节从其调用类中分离出来。 唯一的区别是我可以看出,战略模式需要参数执行,而命令模式不。 在我看来,命令模式要求创build时所有的执行信息都是可用的,并且能够延迟其调用(可能作为脚本的一部分)。 什么决定指导是否使用一种模式或另一种模式?
有人请向我解释模板方法模式和策略模式之间有什么区别? 据我可以告诉他们是99%相同 – 唯一的区别是模板方法模式具有抽象类作为基类,而战略类使用由每个具体战略类实现的接口。 然而,就客户而言,他们的消费方式完全一样 – 这是正确的吗?
战略devise模式与国家devise模式有什么区别? 我在网上浏览了不less文章,但没有明确区分。 有人能解释一下外行的差异吗?