我是 Scala 和 Play 的新手;我编写了一个包含业务和表示逻辑的“全部”控制器。我想从控制器中重构业务逻辑。
这是我的 Scala/Play 的样子。用干净的界面重构出这个控制器的业务逻辑的好/惯用的方法是什么?
object NodeRender extends Controller {
...
def deleteNode(nodeId: Long) = Action { request =>
//business logic
val commitDocument = Json.toJson(
Map(
"delete" -> Seq( Map( "id" -> toJson( nodeId)))
))
val commitSend = Json.stringify( commitDocument)
val commitParams = Map( "commit" -> "true", "wt" -> "json")
val headers = Map( "Content-type" -> "application/json")
val sol = host( "127.0.0.1", 8080)
val updateReq = sol / "solr-store" / "collection1" / "update" / "json" <<?
commitParams <:< headers << commitSend
val commitResponse = Http( updateReq)()
//presentation logic
Redirect( routes.NodeRender.listNodes)
}
在 Python/Django 中,我编写了两个类XApiHandler
,XBackend
并在它们之间使用了一个干净的接口。
xb = XBackend( user).do_stuff()
if not xb:
return a_404_error
else:
return the_right_stuff( xb.content) #please dont assume its a view!