|
|
1
2
呈现屏幕并不是纯粹的函数,因为它有副作用。读上 IO monad . 您会发现大多数(如果不是全部)示例都围绕println和readln,但同样的原则也适用。在scalaz的上下文中,请看一下 ZIO .
如果正如Tim在注释中建议的那样,render是纯函数,那么我建议render是模型render(room)的函数,room state是操作的倍数。
|
|
2
2
你似乎在问一些不同的问题,这使得你很难回答,除非用非常一般的方式。
不要向数据对象添加呈现代码,因为这会破坏关注点的分离。典型的OO示例
让你的
将渲染库传递给
将渲染与渲染组件的组合分离,以便可以独立测试它们。 以功能性方式构建整个图像,然后进行单个非功能性操作以显示新图像(通过替换当前图像)。
使用用户交互创建具有更新的
DR
|