相关疑难解决方法(0)

战略模式的现实世界范例

我一直在阅读有关OCP主要内容以及如何使用策略模式来实现这一目标.

我打算尝试向几个人解释这个,但我能想到的唯一例子是根据"订单"的状态使用不同的验证类.

我在线阅读了几篇文章,但这些文章通常没有描述使用该策略的真实原因,如生成报告/账单/验证等...

是否有任何现实世界的例子,您认为策略模式是常见的?

c# java design-patterns strategy-pattern

88
推荐指数
9
解决办法
7万
查看次数

Foreach通过不同的对象,但都可以实现相同的界面?

假设我有这个

interface Movable
{//some stuff}
Run Code Online (Sandbox Code Playgroud)

我有

class Car implements Movable
{//some stuff}
Run Code Online (Sandbox Code Playgroud)

也许我有

class Bike implements Movable
{//some stuff}
Run Code Online (Sandbox Code Playgroud)

我注意到如果我有这个:

ArrayList<Movable> movableThings = new ArrayList<Movable>();
movableThings.add(some kind of Car)
movableThings.add(some kind of Bike)
movableThings.add(some kind of Bike)
Run Code Online (Sandbox Code Playgroud)

这可以称为:

for(Movable m: movableThings)
Run Code Online (Sandbox Code Playgroud)

但如果我这称呼我,我会得到不兼容的类型:

for(Bike b: movableThings)
Run Code Online (Sandbox Code Playgroud)

有人可以解释,也许可以提供更好的方法吗?我知道我可以使用foreach Movable m:movableThings然后使用instanceof来检查自行车但是还有另外一种方法吗?

编辑:好的,谢谢你们澄清......所以我想我要么使用instanceof,要么重新设计我的游戏

java

6
推荐指数
2
解决办法
4044
查看次数

在Java中使用instanceof时导致"不兼容的条件操作数"的原因是什么?

可能重复:
instanceof - 不兼容的条件操作数类型

我试图使用下面的代码并获得编译错误.

Class<A> clas; //this is passed from service 
clas instanceof SomeClass
Run Code Online (Sandbox Code Playgroud)

这给ma带来了以下编译错误:

不兼容的条件操作数类型Class和SomeClass

请帮我!

java compiler-errors instanceof

2
推荐指数
1
解决办法
8512
查看次数