加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 域模型中的域服务与实体方法

发布时间:2020-12-15 18:27:06 所属栏目:百科 来源:网络整理
导读:我知道域和应用程序服务之间的区别.但是无法真正看到域实体和域服务中方法之间的区别:/ 我有一个游戏,有状态,玩家等等.它还有AddPlayer,MoveLeft,Jump等方法.这些方法去哪儿了?我应该创建仅具有属性的裸KOGame,然后创建具有功能的KOGameServices吗? 鲍勃
我知道域和应用程序服务之间的区别.但是无法真正看到域实体和域服务中方法之间的区别:/

我有一个游戏,有状态,玩家等等.它还有AddPlayer,MoveLeft,Jump等方法.这些方法去哪儿了?我应该创建仅具有属性的裸KOGame,然后创建具有功能的KOGameServices吗?

鲍勃叔叔在他的文章here中写道:“一个实体可以是一个带有方法的对象,或者它可以是一组数据结构和功能.”

我甚至不想提及像Move或Jump这样的方法也必须在App Services中,在KOGameAPI中 – 因为UI需要这些方法(当然是通过接口).

这是我的班级:

public class KOGame
{
    public GameState State { get; set; }
    public IList<Player> Players { get; set; }
    public int PlayersCount;

    public KOGame()
    {
        State = GameState.New;
        PlayersCount = 2;
        Players = new List<Player>();
    }

    public void AddPlayer(Player player)
    {
    }

    public bool MoveRight(int id)
    {
        return false;
    }

    public bool MoveLeft(int id)
    {
        return false;
    }

    public bool Jump(int id)
    {
        return false;
    }
}

那么,结束我的问题:域服务有哪些方法,域实体有哪些方法?有了Class1类,我什么时候应该创建Class1Services类?

编辑:
只是快速解释为什么我选择DDD:
我想创建跨平台应用程序,我希望每个平台都有单层通用.我选择C#,在Xamarin的帮助下,我可以轻松地为每个平台实现单域模型甚至服务.我只是决定在服务中应该采用哪些方法以及在域模型中作为实体的一部分

解决方法

如果要完成一个用例,您需要在域级别协调2个或更多聚合,将协调逻辑放在域服务中调用聚合方法.如果只需要一个聚合,则不涉及域服务.只需从app服务调用聚合方法即可.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读