试图在管间找到一些例子。我正在考虑国家或战略模式,但如果有人有任何战争故事,实例或资源,他们可以向我指出,则将不胜感激。
我不/不能使用Windows工作流。
我的例子是我有一个复杂的向导,可以根据用户在做什么以及由谁来更改进程的状态。
例如:
取消
用户要求
经理要求
已确认
被推荐
收到管理员
管理员确认
管理员已取消
干杯
约翰
参考方案
State模式(wikipedia link)怎么样?
public abstract class State
{
/// <summary>
/// Holds the current state we're in.
/// </summary>
public State CurrentState
{
get;
set;
}
public virtual string Cancelled(State context)
{
return "";
}
public virtual string RequestedByUser(State context)
{
return "";
}
public virtual string RequestedByManager(State context)
{
return "";
}
}
public class CancelledState : State
{
public override string Cancelled(State context)
{
context.CurrentState = new SittingState();
return "Cancelled.";
}
public override string RequestedByUser(State context)
{
context.CurrentState = new RequestedByUserState();
return "Requested by User.";
}
public override string RequestedByManager(State context)
{
return "You can't do this before it's been requested by the User";
}
}
// (RequestedByUserState and RequestedByManagerState classes have been cut out)
如您所见,该模式确实适合。
如果出于安全考虑,Chain of Responsibility可能也很重要。如果维基百科的文章没有任何意义,那么this book会提供两个很好的例子。另一个是向导的命令模式。它们都不完美,但是它们给您一些好主意。
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
改造正在返回一个空的响应主体 - java我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…
Mongo汇总 - javascript我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …
如何在Wiremock中为JUNIT匹配精确的json - java我正在使用Wiremock在Spring启动应用程序中模拟Junit的REST服务。我的问题是,我无法匹配多个匹配模式。 Junit.javaStringValuePattern pattern = WireMock.matching(".*"); givenThat(post(urlEqualTo("/softwares…
Ajax表单未获得结果 - javascript我有一个带有搜索功能的主页。从主页搜索可以正常工作,但是当我尝试使用ajax表单(在url.com/search?id=biology上)再次搜索时,我被重定向到404页面,提示未找到/Search。主页上的表格:@using (Html.BeginForm("Index", "Search", new { Retur…