我正在努力了解我的工厂类应该在我的DDD项目中做什么.是的,工厂应该用于创建对象,但究竟应该做什么.考虑以下工厂类:
public class ProductFactory
{
private static IProductRepository _repository;
public static Product CreateProduct()
{
return new Product();
}
public static Product CreateProduct()
{
//What else would go here?
}
public static Product GetProductById(int productId)
{
//Should i be making a direct call to the respoitory from here?
Greener.Domain.Product.Product p = _repository.GetProductById(productId);
return p;
}
}
Run Code Online (Sandbox Code Playgroud)
我应该从工厂内直接调用存储库吗?
从数据库中检索数据时,如何管理对象创建?
我需要做什么才能完成这个课程,我还应该使用其他什么方法?
我是否应该使用此类从域和存储库中创建Product对象?
请帮忙!
说方式有一个变量(比如说String Str),Str的值开始为""然后当一些代码运行它被设置为"test"然后在代码中的其他地方再次更改为"tester".现在在程序中我想知道Str的先前值是什么.这在Java中可行吗?
所以我说变量变了两次,你想在第二次改变之前找出Str是什么.因此在上面的示例中,Str的最新值将是"tester",但我想在此之前找出Str是什么(假设您在将其更改为测试人员之前不知道它是什么)在这种情况下我想要成为能够发现Str是"测试".
是否可以在Java中执行此操作?
知道为什么下面的代码片段没有将脚本元素添加到DOM中吗?
var code = "<script></script>";
$("#someElement").append(code);
Run Code Online (Sandbox Code Playgroud) 我想删除它们,因为出于某种原因,我的表单在启动时会恢复到错误的维度.
我在我的用户目录中找不到任何内容,但我不确定要查找的内容.
我对Windows和Linux感兴趣.
我目前正在使用ASP.NET创建一个Webportal,它在很大程度上依赖于数据库的使用.基本上,来自任何用户的每个(几乎每个:P)GET查询都将导致从Web服务器查询数据库.
现在,我对此非常陌生,而且我非常关注性能.由于我在这方面缺乏经验,我真的不知道会发生什么.
我的问题是,使用ADO.NET,只是将静态连接从Web服务器打开到数据库,然后在每次查询数据库之前检查此连接服务器端的完整性,这是一个更明智的选择吗? - 或者,我最好在每次查询之前打开连接然后关闭它?
在我的脑海中,第一个选项会更好,因为您在每个查询之前节省了时间握手等,并且您在数据库和服务器端都节省了内存,因为您只有一个连接,但这种方法是否有任何缺陷?2个查询是否可以同时发送可能会破坏彼此的完整性或混合返回的数据集?
我已经尝试在这里和网上搜索,找到一些关于此的最佳实践,但没有运气.我得到的最近的是:保持数据库连接打开很长时间是安全的,但这似乎更适合于你有多个数据库用户的分布式系统,而我只有我的网络服务器..
我想将按钮的启用状态设置为值的否定.
所以给出这段代码:
<asp:CheckBox ID="DefaultChecked"
Checked='<%# Bind("IsDefaultMessage") %>'
Enabled="false"
runat="server" />
<asp:LinkButton ID="MakeDefaultButton"
runat="server"
CommandName="MakeDefault'
CommandArgument='<%# Bind("ResidentialInfoID") %>'
Text="Make Default" />
Run Code Online (Sandbox Code Playgroud)
我怎样才能让LinkButton的Enabled属性false,如果IsDefaultMessage == true?
我已经找到了在Apache中使用基于DOD CAC卡的客户端证书身份验证的所有必要步骤,但现在我正在努力从我收到的证书中为用户提供良好的GUID.证书上是否有可用的GUID,在更新CAC卡时不会更改?我正在考虑使用SSL_CLIENT_S_DN,它看起来像:
/ C = US/O =美国政府/ OU = DoD/OU = PKI/OU =承包商/ CN = LAST_NAME.FIRST_NAME.MIDDLE_NAME.0123456789
但是我听说CAC卡更新时最后的数字会发生变化.这是真的?是否有更好的信息用于GUID?我也想获取用户的电子邮件地址,但我在证书中收到的信息中看不到它.电子邮件地址是否在我看不到的某些自定义扩展程序中可用?
谢谢!
Environment.SpecialFolder.CommonApplicationData
*在XP下返回"C:\ Documents and Settings\All Users\Application Data",可供所有用户使用
*在Vista下返回"C:\ ProgramData [MyApp] \",这对于普通用户来说是不可写的
为什么我想要CommonFolder?因为,管理员将在管理员帐户下的XP(或vista)上安装我的软件数据库,但是当用户登录并运行我的软件时,当前帐户将通过我的软件查看数据库安装的其他位置:用户目录在文件和设置....
因此AllUsers(通用文件夹)对于管理员和常规非管理员用户来说是常见的..
这让我抓狂:在哪里放我的数据库,以便在Vista和XP下运行????? 谢谢乔纳森
当我们想为某个类创建新对象时,如果我们已经有了一个,我们应该使用clone()还是使用new关键字实例化?
是的,clone()也会复制所有成员,但我很好奇这个无关紧要的情况.
ClassType foo = new ClassType();
ClassType bar = new ClassType(); // here, will foo.clone() be better choice?
Run Code Online (Sandbox Code Playgroud)
我在目前的任务中需要这个,因为我正在使用通用列表(列表<T >),它有时会变得很大并且在实际用于UI之前通过'n'层.(它们之间转换为数组并返回列表以及序列化目的).所以,我只是想提高性能.
使用C#,我需要从几个AppSettings构建一个连接字符串.如果我这样做:
Connection = string.Format("Data Source={0};Initial Catalog={1);User Id={2};Password={3};",
ConfigurationManager.AppSettings.Get("CartServer"),
ConfigurationManager.AppSettings.Get("CartDatabase"),
ConfigurationManager.AppSettings.Get("CartUserName"),
ConfigurationManager.AppSettings.Get("CartPassword"));
Run Code Online (Sandbox Code Playgroud)
我得到一个无效的格式字符串异常.我把它缩小到格式字符串的"Password ="部分(即"Passwork ="工作).有一个简单的解决方法:
Connection = string.Format("Data Source={0};Initial Catalog={1);User Id={2};{3}={4};",
ConfigurationManager.AppSettings.Get("CartServer"),
ConfigurationManager.AppSettings.Get("CartDatabase"),
ConfigurationManager.AppSettings.Get("CartUserName"),
"Password",ConfigurationManager.AppSettings.Get("CartPassword")); // Lame!!!
Run Code Online (Sandbox Code Playgroud)
但是"密码"的真实故事是什么?我检查了MSDN和其他一些网站但是空了.哦,如果重要的话,这是一个WCF服务.