使用什么样的设计模式?连通性和UI模型

时间:2015-12-18 16:28:55

标签: design-patterns

根据对象(型号)的类型,需要打开所需的窗口。该模型不应具有用户界面的知识。什么模式解决了这个问题?

1 个答案:

答案 0 :(得分:0)

Visitor Pattern'可能就是你想要的。

'Model'类有以下方法:

public class MyClassA {

    ...

    public void accept(Visitor v) { 
        v.visit(this); 
   } 
}
public class MyClassB {

    ...

    public void accept(Visitor v) { 
        v.visit(this); 
   } 
}
public class MyClassC {

    ...

    public void accept(Visitor v) { 
        v.visit(this); 
   } 
}
public class MyClassD {

    ...

    public void accept(Visitor v) { 
        v.visit(this); 
   } 
}

'访客'然后有一系列名为的方法:

public void visit(MyClassA instance){...}
public void visit(MyClassB instance){...}
public void visit(MyClassC instance){...}
public void visit(MyClassD instance){...}

这利用了多态性,并能够根据输入类动态调度适当的方法。

这允许您的模型类不知道什么算法正在“处理”它(访问它),但是使用所有设计模式,这会在访问者类和它可以支持“访问”的类之间创建耦合。 。所以这里有一个权衡,允许模型更简单/不知道它连接到什么。