我刚刚开始研究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
在合并该分支之前它们将是正面的?