所以我有一个类,AbtractParent,以及扩展它的任意数量的子类.
每个子类都有一个与之关联的字符串.
最终,我希望能够编写代码
if(AbstractParent.doesStringRepresentSubClass("example String"))
AbstractParent.getInstOfSubClassReppedBy("example String");
Run Code Online (Sandbox Code Playgroud)
我目前的解决方案是将地图存储为AbstractParent的静态变量,并让每个子类将自身的实例及其字符串添加到此映射中.
问题是,通过这样做,AbstractParent现在知道它的每个子类,这似乎与OOP的想法相反.
我唯一的解决方案是
他们是一个更好的,更多OOP正确的设计方式吗?
谢谢大家!
编辑1:字符串表示形式与类名称不同,因此不能使用反射强制转换为类型.
编辑2:这里的最终目标是遵循Open Close原则,因此创建子类应该只需要编辑子类文件.因此,工厂方法不能完全用于解决问题.
也就是说,将上面的代码分成工厂类和抽象父类绝对是我要实现的好设计.
我使用意图检索电池温度和电压信息Intent.ACTION_BATTERY_CHANGED,我得到的值非常奇怪.我无法得到任何线索:temperature=270而且voltage=3782!
这些价值观是什么?他们有任何单位,如摄氏度,华氏度或毫升或微伏?
我有一组150x150px的png图像,以及它们对应的一组(x,y)坐标.有没有办法在网格上绘制图像?例如,我正在寻找一个R或Python解决方案来创建如下内容:

一切都在标题中:
我不止一次读过设置这样的样式:
<Style TargetType="TextBox">...</Style>
Run Code Online (Sandbox Code Playgroud)
大致相当于:
<Style x:Key="{x:Type TextBox}" TargetType="TextBox">...</Style>
Run Code Online (Sandbox Code Playgroud)
(最后一次评论另一个问题)
两者都应该将样式应用于应用程序中的所有textBox(如果它们当然放在应用程序的资源中)
但是我在我的应用程序中都试过了,只有第二个用x:Key定义了.
它对我来说非常合乎逻辑,因为第一个不知道在没有任何x:Key属性集的情况下应用的位置,但那么第一个语法的重点是什么?
编辑:我的应用程序中的代码示例工作正常:
<Style x:Key="{x:Type ComboBoxItem}" TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
和代码不:
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
我写这个是为了摆脱你操纵现有ComboBox的itemsSource时用comboBoxItems得到的绑定问题.第一个代码工作正常,但第二个代码没有.
通过将horizontalContentAlignment设置为Right,您可以轻松地看到这一点
编辑2:这段代码只是放在App.xaml的资源字典中.用TargetType ="ComboBoxItem"替换TargetType ="{x:Type ComboBoxItem}"没有任何区别
编辑3:我刚刚意识到我可能忘记了确切的重要事项(对不起):尽管样式是在xaml中定义的,但我实际上是在我的代码中将控件添加到布局中,因为它们是动态添加的.可能是麻烦所在......
在这里我创建了一个示例来帮助我理解, http://www.jsfiddle.net/BLvsF/
我希望将 item-'a6' 滚动到可见的选择框中,我该怎么做?我想用 jquery 做同样的事情
$(document).ready(function() {
$('#btn').click(function() {
document.getElementById('a6').scrollIntoView();
});
});
Run Code Online (Sandbox Code Playgroud)
但是,如何使用 jQuery 实现相同的功能?
我尝试使用 .get(0).scrollIntoView()。但仍然不适用。
$(document).ready(function() {
$('#btn').click(function() {
$('#a> option:selected').clone(false).appendTo('#b').get(0).scrollIntoView();
});
});
Run Code Online (Sandbox Code Playgroud)
http://www.jsfiddle.net/CYQfD/
谢谢,伊莱恩
如何从我的开发机器上运行的PHP脚本(不在某个服务器上)上检查我是否连接到互联网?
我运行脚本使用wget下载一组文件(可能存在也可能不存在).如果我在没有连接的情况下尝试下载wget,wget会继续下一个认为该文件不存在的内容,所以我需要在调用wget之前进行检查.
可能重复:
如何从php中的数组中删除元素?
我有一系列的东西,例如汽车
$cars[0] = "audi";
$cars[1] = "saab";
$cars[2] = "volvo";
$cars[3] = "vw";
Run Code Online (Sandbox Code Playgroud)
如何从列表中删除"volvo"?
我使用的是PowerMock 1.4.7和JUnit 4.8.2
我只需要模拟一些静态方法,我希望其他人(来自同一个类)只返回原始值.当我模拟mockStatic并且不调用when().doReturn()所有静态方法时返回它们的默认值 - 如返回Object时为null或返回boolean时返回false等等.所以我尝试thenCallRealMethod在每个静态方法上显式使用
以返回默认实现(意味着没有模拟/没有假货),但我不知道如何在每个可能的参数变体上调用它(=我想要每个可能的输入调用原始方法).我只知道如何模拟具体的论证变异.
我看到两个不同的值request.env['CONTENT_TYPE']和request.content_type.
从单独的应用程序,我发送请求到我的Rails应用程序并明确设置Content-Type为text/xml.
以下是我在Rails应用程序中看到的另一端:
request.env['CONTENT_TYPE'] = "text/xml"
request.content_type = "application/xml"
Run Code Online (Sandbox Code Playgroud)
request.content_type 实际上是 action_dispatch.request.content_type
request.env['CONTENT_TYPE']和之间有什么区别request.content_type?content-type ruby-on-rails httprequest actiondispatch ruby-on-rails-3
前一段时间,我需要一个类似Spy ++的应用程序来进行.NET UI调试.我发现了一篇旧的MSDN文章,其中包含一个类似的示例,但是它停止了在较新的.NET Framework版本中工作.
有没有人知道/编写了一个模仿Spy ++行为的应用程序并且在托管应用程序上工作(相反,显示托管事件/属性)并且可以在新的.NET框架上运行,最高可达4.0?