我刚刚开始研究MV-VM的WPF应用程序.到目前为止,除了这个特殊问题,一切都有意义......
我有一个ViewModel我会称之为搜索.此ViewModel绑定到数据网格并列出项目的结果.现在,我有一个命令,需要调出另一个视图,项目的详细信息.
将逻辑显示在搜索视图中显示另一个视图似乎不对,它根本不可测试.
这是我的ViewModel实现,它是不可测试的......
public class SearchViewModel
{
public void SelectItem()
{
// I want to call the DetailsView from here
// this seems wrong, and is untestable
var detailsView = new DetailsView();
detailsView.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
从ViewModel方法显示视图的逻辑在哪里进入这种模式?
这段代码非常简单,是否正确?我不知道是否应该保留通过init方法传入的委托.
@interface SomeClass : NSObject {
SomeClassDelegate *someClassDelegate;
}
-(id)initWithDelegate:(SomeClassDelegate *)delegate;
@end
@implementation SomeClass
-(id)initWithDelegate:(SomeClassDelegate *)delegate
{
[delegate retain]; // should I be doing this?
someClassDelegate = delegate;
}
-(void)dealloc
{
[delegate release]; // obviously only do this if I DO need to retain it
[super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)
我最初的想法是否定的,但是这段代码似乎暗示了其他方面.我知道我不能依赖保留计数,但我想知道处理代表的正确方法.
// self's retain count is 1
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:req delegate:self];
// the retain count is now 2, did the init of URLConnection retain self?
Run Code Online (Sandbox Code Playgroud) 似乎命名一个以前未命名的分支实际上是行不通的。它创建了一个令人讨厌的多头问题,我找不到解决方案。
这是工作流程...
UserA开始使用他们期望很小的功能,因此他们只是开始使用(default分支机构)。事实证明,这项更改是一个大项目,需要多个贡献者。因此,UserA出现了问题hg branch "Feature1"并继续工作,需要在本地提交。
然后,用户A从中央存储库中提取更改,以便他可以推送。
此时,为什么还要hg heads返回3个头?它显示2代表default和1代表Feature1。第一个标题default是分支上另一个用户的最新更改(无关)。第二default个头是提交之前的hg branch "Feature1"提交。
在 中央存储库有规则的执行,让每个分支只有1头被允许,所以迫使一推是不是一种选择。回购协议不需要default分支上有多个头。
UserA应该能够推送这些更改,以便其他用户可以看到Feature1分支并提供帮助。我似乎找不到“纠正”此问题的方法。我认为在它是命名分支之前,我无法为该功能重新编写初始提交的分支。
我知道命名分支之前的初始更改在技术上是默认分支,但这是否意味着Feature1在合并该分支之前它们将是正面的?