我是TDD和DDD的新手,我有一个关于静态方法的简单问题.TDD的大多数专家用一句话说静态方法是坏的(我们应该忘记创建大量的静态实用程序,我们(或我)以前用过它们是不可测试的.我可以看出为什么它们是不可测试(这里可以找到一个很棒的澄清文章,对于那些感兴趣的人,但我想我是这里唯一的菜鸟:()但是我想知道从TDD角度来看使用静态有一个很好的干净指南吗?
对于大多数人来说,这可能是一个非常愚蠢的问题,但是一些提示会很棒,我只想知道这里的专家如何看待静态的东西.提前致谢.
编辑:在寻找答案的过程中,我找到了2个关于静态使用的其他好线程(虽然不是TDD关注),我觉得对于那些感兴趣的人(我自己也包括在内)很好.
我有以下代码来重新订购ObservableCollection<T>集合:
list = new ObservableCollection<SomeType>( list.OrderBy( c=>c.Ordinal ) );
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但我不喜欢涉及"新"的事实.有没有办法可以在ObservableCollection<T>不创建新集合的情况下更改集合的内部元素顺序?
谢谢,
我没有绑定错误,此代码在另一个地方工作.我还没有发现我现在所做的与它工作的代码有什么不同,而且代码不是那么多.
在UserControl.Resource中:
<Style TargetType="TextBox">
<Setter Property="BorderBrush" Value="DarkBlue"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="0,1,0,1"/>
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel Orientation="Horizontal">
<AdornedElementPlaceholder/>
<Grid Margin="2,0,0,0">
<Ellipse Width="20" Height="20" Fill="Red"/>
<TextBlock Foreground="White" Text="X" FontWeight="Bold"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
下面也在Xaml中:
<TextBlock Height="23" HorizontalAlignment="Left" Margin="22,90,0,0"
Text="Keywords" VerticalAlignment="Top"/>
<TextBox Height="23" HorizontalAlignment="Left" Margin="22,108,0,0"
VerticalAlignment="Top" Width="244">
<Binding Path="Tags" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<DataErrorValidationRule ValidatesOnTargetUpdated="False"/>
</Binding.ValidationRules>
</Binding>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
我的ViewModel中的按钮SAVE仅在Model.Tags属性从用户输入10个字符时激活.当我输入10,11然后返回8个字符时,按钮激活/禁用工作正常.所有属性更改都会被触发.
型号:
namespace …Run Code Online (Sandbox Code Playgroud) 我只是想知道我对使用共享库动态加载插件的跨平台实现的选择.到目前为止,我发现的唯一一个是:
而我只是想知道我是否有其他选择?本质上,我希望能够将插件放在共享对象文件中,并在运行时加载它们,我希望以跨平台的C++方式实现.
有没有办法隐藏JFreeChart XYSeries yaxis?yaxis在逻辑分析仪显示器上毫无意义.
简单的一段代码dataTable.CentralFeed是SessionScoped Bean,PostComment是RequestScoped Bean
<h:form id="table">
<h:dataTable value="#{CentralFeed.profileComments}" var="item">
<h:column>
<h:outputText value="#{item.comment}"/><br/>
<h:inputTextarea value="#{item.newComment}" rows="2"/><br/>
<h:commandButton value="Post" action="#{PostComment.postReply(item)}" />
</h:column>
</h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
内 CentralFeed.java
private List<NewsFeed> profileComments = null;
public List<NewsFeed> getProfileComments() {
PhaseId currentPhaseId = FacesContext.getCurrentInstance().getCurrentPhaseId();
profileComments = scholarBean.findProfileCommentsByUserId(getSelectedUser().getId());
//model = new ListDataModel<NewsFeed>(profileComments);
return profileComments;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是getProfileComments()被召唤了很多.currentPhaseId将告诉我们该方法被调用的阶段.当页面首次加载时,在第6阶段 - getProfileComment约5次接听电话RENDER_RESPONSE.页面有一个inputTextarea,所以我输入了一些内容,然后单击Post(commandButton).然后再通过阶段1-> 4 再getProfileComment调用12次.每个阶段调用此方法3-4次.然后,在属性newComment获取调用的setter方法(所以setNewComment()得到调用),getProfileComment再次调用get调用 …
String date = new java.text.SimpleDateFormat("MM-dd-yyyy").format(new java.util.date());
upload.uploadfile("192.168.0.210", "muruganp", "vm4snk", "/home/media/Desktop/FTP Upload/+date+"_RB.zip"", "/fileserver/filesbackup/Emac/+date+"_RB.zip"");
Run Code Online (Sandbox Code Playgroud)
uploadfile是将文件10-20-2010_RB.zip上传到服务器位置的功能.
但是因为我的路径中有字符串"date",所以很少出现非法表达式错误.
如果我尝试如下相同,该程序工作正常.
upload.uploadfile("192.168.0.210", "muruganp", "vm4snk", "/home/media/Desktop/FTP Upload/20-10-2010_RB.zip", "/fileserver/filesbackup/Emac/20-10-2010_RB.zip");
Run Code Online (Sandbox Code Playgroud)
出于某些原因,我强迫在文件路径中插入字符串.我怎样才能达到最终结果?好心提醒.
我知道我可以在Eclipse源代码菜单中为字段生成setter和getter,但我很惊讶它不提供用新调用方法调用来替换直接字段访问器.
有谁知道如何做到这一点,手动搜索和替换?
谢谢!
我想使用ORM,并且一直在关注EF 4.这个平台是否可扩展.我在网上看到很多东西,但是一切看起来都非常偏向于某种方式.任何人都知道基准或非主观信息.
在这一点上,EF是否会阻止SQL注入或XSS.我知道它使用了参数化查询,但这还够吗?
任何帮助表示赞赏.
我想在应用程序运行时在状态栏中放置一个图标,包括它在后台运行时.我怎样才能做到这一点?