如何才能称之为业务逻辑与界面达到了彻底的分离?回答这个问题困难。但是如果能够找到一个参考原型,那就会很好理解。
我找的一个参考原型是:SQL Server + SQL Admin
1、SQL Server是服务器,它只有业务逻辑,没有界面;
2、SQL Admin是SQL Server的界面,没有业务逻辑;
3、SQL Server与SQL Admin通过TCP交互,它们是彻底分离的,影射成就是:这是一种业务逻辑与界面彻底分离的完美形式;
他们是如何彻底分离?其实很简单:
SQL Server提供了SQL Admin的一个TCP命令调用接口,也就是Command模式来完成,影射成就是:程序的业务逻辑应该提供给界面一个Command接口,界面只能够通过Command接口来执行命令,而不能直接操作业务逻辑里面的数据。
当然,如果考虑到界面需要不挂起,若Command执行是阻塞模式就有些问题,需要变换成回调返回的异步模式,这会复杂少许。