我有一个大约十行代码的方法.我想创建更多完全相同的方法,除了一个会改变一行代码的小计算.这是传递函数指针以替换该行的完美应用程序,但Java没有函数指针.什么是我最好的选择?
我一直在阅读有关OCP主要内容以及如何使用策略模式来实现这一目标.
我打算尝试向几个人解释这个,但我能想到的唯一例子是根据"订单"的状态使用不同的验证类.
我在线阅读了几篇文章,但这些文章通常没有描述使用该策略的真实原因,如生成报告/账单/验证等...
是否有任何现实世界的例子,您认为策略模式是常见的?
任何人都可以用命令模式的简单例子来解释.我在互联网上提到但我很困惑.
我已经了解了实现和接口的基础知识。我不明白什么时候使用接口。拥有一个接口需要什么条件?
例子:
/// Interface demo
Interface IDemo
{
// Function prototype
public void Show();
}
// First class using the interface
Class MyClass1 : IDemo
{
public void Show()
{
// Function body comes here
Response.Write("I'm in MyClass");
}
}
// Second class using the interface
Class MyClass2 : IDemo
{
public void Show()
{
// Function body comes here
Response.Write("I'm in MyClass2");
Response.Write("So, what?");
}
}
Run Code Online (Sandbox Code Playgroud)
这两个类具有相同的函数名称和不同的主体。这也可以在没有接口的情况下实现。提供方法参考的目的是什么?当我扩展超类时,至少我获得了超类的属性和方法。
请给我一个清晰的解释和一个现实世界的场景,以便我更好地理解。
我有一个程序应从控制台读取命令,并根据命令执行以下几种操作之一。这是我到目前为止的内容:
void ConwayView::listening_commands() {
string command;
do {
cin >> command;
if ("tick" == command)
{
// to do
}
else if ("start" == command)
{
// to do for start
}
...
} while (EXIT != command);
}
Run Code Online (Sandbox Code Playgroud)
如果存在大量命令switch,则使用代替if语句会有所帮助。您建议使用什么模式来提供交互式命令行?