问题列表 - 第15075页

DDD - 聚合根和创建行为对象

我想问一些关于如何避免编写仅仅是数据容器的对象的建议.

请考虑以下聚合根:

public class Post : IAggregateRoot
{
  List<Comment> Comments {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

鉴于控制聚合根如何工作的原则,调用上面这样的代码是否有效?

new Post().Comments.Add(New Comment("stuff"));
Run Code Online (Sandbox Code Playgroud)

或者这是正确的方法吗?

public class Post : IAggregateRoot
{
      List<Comment> Comments {get; private set;}
      public void AddComment(string message)
      {
        Comments.Add(new Comment(message)); 
      }
}
Run Code Online (Sandbox Code Playgroud)

并且这样称呼:

new Post().AddComment("stuff");
Run Code Online (Sandbox Code Playgroud)

这是Eric Evan意味着Aggregate Roots是原子的吗?

如果是这种情况,是否意味着实体没有任何公共设置者,而是具有支持方法(AddThis,RemoveThat)?这是你如何创建具有丰富行为的对象?

domain-driven-design

7
推荐指数
1
解决办法
613
查看次数

在同一进程中加载​​dll的多个副本

我有一个由第三方生产的dll,它具有某种内部数据结构,将其大小限制为X元素.

所以基本上,它有一个以X为限制的队列.

现在从我所知道的DLL是每个进程,但是可以多次加载DLL吗?也许每个线程?在C#?或者在C++/CLI中?

我正在尝试加载本机c ++ dll.

c++ windows dll multithreading process

9
推荐指数
2
解决办法
3898
查看次数

粘贴在Vim中而不移动光标

我经常需要在相同或相似的位置将东西粘贴到几个相邻的线上.每次移动到下一行时,必须将光标移回粘贴内容的开头是一件痛苦的事.如何在不移动光标的情况下粘贴(如命令'p')?或者,如何快速将光标恢复到粘贴前的位置?

vim

25
推荐指数
3
解决办法
4668
查看次数

newid()vs newsequentialid()有什么区别/利弊?

在所有主键都是GUID的数据库中,使用newid()与newsequentialid()作为"默认值或绑定"的差异/含义和/或利弊是什么.

我所知道的唯一区别是newid()创建一个新的随机GUID而不是newsequentialid()以递增的方式基于表中的最后一个GUID创建一个新的GUID.

identity sql-server-2005 primary-key

29
推荐指数
2
解决办法
2万
查看次数

在CakePhp中调用unbindModel.它是如何工作的?

unbindModel是如何在蛋糕中发生的?

$this->User->unbindModel(array('hasAndBelongsToMany' => array('Friend')));
Run Code Online (Sandbox Code Playgroud)

我在函数的开头写了这个.但它仍在查询"朋友"模型.在函数中间调用了paginate().所以我认为分页器可能正在生成查询.

我在paginate之前添加了一个unbindModel调用,它现在可以工作了.

$this->User->unbindModel(array('hasAndBelongsToMany' => array('Friend')));
$user = $this->paginate("User", array("User.first_name LIKE" => $user["User"]["first_name"]));
Run Code Online (Sandbox Code Playgroud)

unbindModel是否取消绑定每个查询?或者在整个函数调用期间解除绑定?

php cakephp

8
推荐指数
1
解决办法
2万
查看次数

C#:在什么情况下你应该删除引用?

CLR Profiler还可以显示哪些方法分配的存储空间超出预期,并且可以发现无意中保留对无用的对象图的引用的情况,否则这些对象图可能被GC回收.(一个常见的问题设计模式是一个软件缓存或项目的查找表,这些项目不再需要或者以后可以安全地重建.当缓存使对象图表保持活动超过其使用寿命时,这是悲剧性的.相反,请确保将参考文献归零到你不再需要的对象.) - 编写更快的托管代码

我认为我之前没有真正搞过一个参考.我假设你并不总是需要这样做,但我想有时候记得这么做很重要.但是,那是什么情况呢?什么时候应该删除引用?

c# null garbage-collection reference

11
推荐指数
1
解决办法
1619
查看次数

OpenGrok的多个项目

我只是想知道为多个项目设置和配置OpenGrok的最佳方法是什么,例如通过单个页面和下拉列表.

虽然单个项目的文档非常简单,但设置多项目环境的说明对我来说并不是很清楚.

opengrok

3
推荐指数
1
解决办法
5705
查看次数

什么是流行的,多平台,免费和开源的套接字库

是否有任何免费的开源库(在C/C++中)广泛使用的套接字,并支持广泛的操作系统(Windows,Unix/Linux,FreeBSD等).就像pthreads一样.

否则,剩下的唯一解决方案是为每个操作系统编写套接字包装器.或者写一个针对winsock和GNU C sys/socket.h库的包装就足够了?

我是否有可能针对GNU C提供的套接字库实现它.GNU C可用于各种平台,我的代码可以在所有这些平台上运行吗?

c c++ sockets

8
推荐指数
3
解决办法
9319
查看次数

OSGi:Blueprint是否取代声明性服务?

OSGi的新R4.2规范描述了Blueprint服务,用于依赖注入和服务连接.

Blueprint是否取代声明性服务(它仍然是规范的一部分),或者它们是否打算一起工作?

蓝图是否已经可用于流行的实现(Felix和Equinox)?

java osgi blueprint-osgi osgi-ds

23
推荐指数
1
解决办法
4067
查看次数

为什么SQLite会抱怨我准备好的语句的语法?

我在sqlite3中获取准备好的语句时遇到了麻烦.我正在使用Perl和Perl DBD框架.以下是我使用的代码:

#This is a function I have defined
sub query($@){
    my $st = $db->prepare(shift);
    $st->execute(@_);
}

#And it is used like so
query("UPDATE rooms SET name = ?, SET capacity = ? WHERE id = ?", 
    $name, $capacity, $id);
Run Code Online (Sandbox Code Playgroud)

当我尝试时,我收到以下错误:

DBD::SQLite::db prepare failed: near "SET": syntax error(1) at dbdimp.c line 
271 at database.pm line 80.

为什么我会收到这个错误?如果我在不使用准备好的语句的情 我的应用程序中的每个其他预准备语句都有效,但UPDATE查询除外.

sqlite perl syntax-error prepared-statement

0
推荐指数
1
解决办法
1795
查看次数