如果你有一个带有一些普通get/set属性的类,是否有理由在类方法中使用getter,或者你应该只使用私有成员变量?我认为可能会有更多关于setter的争论(验证逻辑?),但我想知道getter.
例如(在Java中) - 是否有任何理由使用选项2?:
public class Something
{
private int messageId;
public int getMessageId() { return this.messageId; }
public void setMessage(int messageId) { this.messageId = messageId; }
public void doSomething()
{
// Option 1:
doSomethingWithMessageId(messageId);
// Option 2:
doSomethingWithMessageId(getMessageId());
}
}
Run Code Online (Sandbox Code Playgroud) 我的工作系统基本上是一个消息驱动的状态机.它接收各种类型的消息,根据消息查找某些上下文/状态,然后根据消息和当前状态决定要执行的操作.通常,结果是从系统发出消息.
是否有任何良好的开源框架在.NET中实现状态机?我查看了最新版本的Windows Workflow,看起来这是一个不错的选择; 但是,我对默认持久性机制(我们需要报告状态转换数据),可测试性以及WF团队正在重新设计框架这一事实(我猜)时有一些担忧.
而不是WF,我正在考虑尝试实现一个普通的GoF"State"模式,并使用Spring.NET将所有内容连接起来.有什么东西可以做到这一点,或类似的东西?
我有一个数据库,其中拼写错误的字符串出现在不同表中的不同位置.是否有SQL查询可用于在数据库中的每个可能的varchar/text列中搜索此字符串?
我正在考虑尝试以某种方式使用information_schema视图来创建动态查询,但我不确定这是否有效,或者是否有更好的方法.
如果有帮助,我正在使用MS SQL Server.
有谁知道C/C++/Objective-C中的任何免费/开源文本识别库?基本上可以扫描图像,并读出所有纯文本.
我很好奇是否有人对提供MSMQ访问的Java库有任何建议?我已经下载了J-Integra Java-COM库的试用版,并构建并运行了他们的MSMQ示例应用程序,但我很好奇是否有任何好的(免费:))替代品.我遇到了一些JNI实现,比如jMSMQ和其他几个,但是如果可能的话我宁愿避免使用JNI.
我们还调查了一些.NET < - > JMS互操作解决方案,如JNBridge(使用ActiveMQ).我认为我们公司决定将我们的排队集中在MSMQ中,这将是我们理想的解决方案.
我们希望在.NET端使用WCF(netMsmq或msmqIntegration).我有点担心java方面将如何处理WCF消息(二进制编码),但应该有那些选项(带有文本编码和MSMQ传输的customBinding?),所以我不太担心.主要担心在Java中访问MSMQ.
我们的另一个选择是在每个队列的输入端放置一个瘦Web服务层,并以这种方式实现互操作.然而,性能有点令人担忧.
有什么建议?非常感谢任何人的时间.
我之前问了一个类似的问题,得到了一些很好的答案,但我觉得它太笼统了.
有没有人知道任何展示真正优秀的TDD实践和SOLID原则的开源项目?TDD和SOLID被广泛宣传,但我从未见过它自己做过,我只是想了解一个项目(大或小)的样子?
在Objective C中,如果你是子类的东西,并且计划覆盖超类的方法,你应该在你的子类@interface中重新声明超类方法吗?
例如,如果您是UIViewController的子类(例如MyViewController),并且您计划覆盖"viewDidLoad",您是否应该在MyViewController @interface声明中包含该方法,或者只是在MyViewController.m中实现它?
在我遇到的例子中,我已经看到它完成了两种方式(在子类接口中重新声明方法,或者不重新声明方法).可能没有任何功能差异,但最佳做法是什么?
我遇到过一种被称为"处理程序模式"的设计模式,但我无法在任何地方找到对这种模式的任何实际引用.它基本上只是一个单方法接口,允许您轻松扩展后端功能,而无需重新编译客户端.对于必须处理许多不同类型请求的Web服务可能很有用.这是一个例子:
public interface IHandler
{
IDictionary<string, string> Handle(IDictionary<string, string> args);
}
Run Code Online (Sandbox Code Playgroud)
args通常包括一个像"Action"这样的键,其值可以告诉implmentation要做什么.可以传入额外的args以获取更多信息.然后,impl传回客户端"应该"理解的任意args列表.
这是一种反模式,还是伪装的另一种模式?这种设计是推荐的吗?
编辑:更多信息:我看到这个实现的方式,"根"处理程序将作为其他具体处理程序的调度程序(也许?).根处理程序有一个"HandlerResolver",它决定哪个具体的处理程序应该根据它的内容获取消息.也许它实际上就像一个"调度员"模式,虽然我不知道这是否真的是一种模式.我想它也可能在根目录中有一个责任链模式,允许你将一堆具体的处理程序链接在一起,然后让他们决定哪一个会处理它.
我有兴趣将一些NHibernate配置/映射移动到代码中以帮助解决一些维护问题.任何人都可以提供Fluent NHibernate与NHibernate.Mapping.Attributes的任何建议/优缺点/比较吗?
我对Java Hibernate注释有一些经验,我很喜欢,但我很好奇NHibernate属性是否具有可比性,以及Fluent是否提供了应该考虑的任何重大上行/下行.
我有以下变量:
char *p;
int l=65;
Run Code Online (Sandbox Code Playgroud)
为什么以下演员表会失败?
(int *)p=&l;
Run Code Online (Sandbox Code Playgroud)
和:
p=&((char) l);
Run Code Online (Sandbox Code Playgroud) .net ×2
c ×2
objective-c ×2
attributes ×1
c# ×1
c++ ×1
frameworks ×1
getter ×1
interop ×1
java ×1
msmq ×1
nhibernate ×1
open-source ×1
overriding ×1
search ×1
sql ×1
sql-server ×1
string ×1
subclass ×1
tdd ×1