我想创建一个具有多种方法的 Java 接口。但我希望界面的用户只能按照我定义的顺序或顺序调用方法。例如buyTicket()
不应在此之前调用reserveTicket()
. 问:有没有设计模式或任何关于如何做到这一点的提示?
我考虑过:
-
A)
- 接口被包装,仅显示下一个可能的方法。每次调用方法都会返回一个新的
operation
可以在它之后调用,等等。
- So
ReserveTicketOperation
has public BuyTicketOperation execute();
- Then
BuyTicketOperation
has public RenderTicketOperation execute();
-
B)
- 使用某种
context
状态机使用枚举记录执行位置,并有一个工厂用于获取下一个操作。
如有任何想法或建议,我们将不胜感激。谢谢
我的第一感觉:这就是根本不做图案。
如果你的方法的内部逻辑要求它们always按一定的顺序调用它们;那么您将公开一个实现细节,这将使您很容易使用您的界面做错事。
含义:不要试图以某种方式强制您的“客户端代码”遵守某些特定的顺序,您应该以客户端代码不需要关心“顺序”的方式设计接口。
在您的特定示例中,问题似乎是票证对象可以“保留”或“购买”;当然,只有“购买”的门票才能退回、退款……
在这种情况下,“解决方案”实际上可能是不同的“预订”门票和“购买”门票的类别。那么您就不必担心有人试图退还仅“预订”的机票。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)