根据Demeter法则,您可以调用返回物体的方法吗?
例如
<?php
class O
{
public function m($http)
{
$response = $http->get('http://www.google.com');
return $response->getBody(); // violation?
}
}
?>
Run Code Online (Sandbox Code Playgroud)
$ http-> get()返回一个对象.这是否算作在M中创建/实例化的对象?如果你不能在它上面调用方法(根据LoD),你将如何处理这种情况?
我们正在尝试使以下方案工作:
我们使用asp:scriptmanager/CompositeScripts将我们的脚本组合成几个脚本块,但是在每次部署到测试系统之后,测试人员都无法获得css和javascript(浏览器缓存)的更新版本.对于CSS,我们已经定义了自己的css用户控件,它将一个Siteversion参数"?v = 1.0.190"附加到css url.此版本转换在web.config/appsettings中定义,并在每次部署时都会受到影响.
我们希望能够为javascripts使用相同的策略,但到目前为止我还没有取得任何成功.渲染脚本标记时.Scriptmanager渲染
<script src="/ScriptResource.axd?d=..." type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
鉴于当前配置的siteversion是1.0.190,我希望它呈现
<script src="/ScriptResource.axd?d=...&v=1.0.190" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
如何从脚本管理器获取"脚本"html输出,以便我可以更改它?它似乎不存在于Render,RenderChildren或RenderControl中呈现的内容中
你的安德烈亚斯
最近我碰到了以下C++代码:
if (a)
{
f();
}
else if (b)
{
f();
}
else if (c)
{
f();
}
Run Code Online (Sandbox Code Playgroud)
其中a,b和c都是不同的条件,并且它们不是很短.
我试图将代码更改为:
if (a || b || c)
{
f();
}
Run Code Online (Sandbox Code Playgroud)
但是作者反对说我的改变会降低代码的可读性.我有两个论点:
1)你不应该通过用三个替换一个分支语句来增加可读性(尽管我真的怀疑使用else而不是||可以使代码更具可读性).
2)这不是最快的代码,没有编译器会对此进行优化.
但我的论点并没有说服他.
你会告诉程序员编写这样的代码吗?
您是否认为复杂条件是使用其他而不是OR的借口?
我正在尝试使用System.ComponentModel.DataAnnotations属性验证包含具有验证规则的其他对象的模型,希望默认的MVC实现就足够了:
var obj = js.Deserialize(json, objectInfo.ObjectType);
if(!TryValidateModel(obj))
{
// Handle failed model validation.
}
Run Code Online (Sandbox Code Playgroud)
该对象由原始类型组成,但也包含其他也使用DataAnnotications的类.像这样:
public class Entry
{
[Required]
public Person Subscriber { get; set; }
[Required]
public String Company { get; set; }
}
public class Person
{
public String FirstName { get; set;}
[Required]
public String Surname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
问题是ASP.NET MVC验证只降低了1级,只评估顶级类的属性,可以在digitallycreated.net/Blog/54/deep-inside-asp.net-mvc-2上阅读-model-元数据和验证.
有谁知道这个优雅的解决方案?我尝试过xVal,但它们似乎使用了非递归模式(http://blog.stevensanderson.com/2009/01/10/xval-a-validation-framework-for-aspnet-mvc/).
有人必须在此之前遇到这个问题吗?如果您正在设计Web服务,那么在模型中嵌套对象似乎并不那么奇怪.
validation asp.net-mvc asp.net-mvc-2-validation data-annotations asp.net-mvc-2
在Python IDLE Shell中,似乎我不能使用复合条件表达式和while循环.我也在括号内尝试过它.拿这两个例子:
k=0
m=0
while k<10 & m<10:
print k
k +=1
m+=1
Run Code Online (Sandbox Code Playgroud)
这不会评估第二个条件.但如果我写
while k<10:
print k
k+=1
Run Code Online (Sandbox Code Playgroud)
这确实有效.有没有办法用"和"运算符实现第一个代码块.我用Java做过.我是否只需要将"if"语句放在一起以在Python中实现相同的功能?
如何在like子句中转义通配符?
例如:
select foo from Foo as foo where foo.bar like '%' || :filter ||'%'
query.setParameter("filter", "%");
query.list();
// I'd expect to get the foo's containing the '%' in bar, not all of them!
有任何想法吗?
当我最初创建动态数据项目时,我告诉它公开外键,但现在我无法在外键的两个实体之间进行映射。当我在专注于关联时单击映射详细信息时,我收到以下消息:
映射不允许通过暴露的外键进行关联。
因此,我想禁用外键的暴露,但不确定如何在不从头开始创建新实体模型的情况下执行此操作。我还没有走得太远 - 所以这并不难,但我想必须有一个程序化的切换?
我只是想在我的Java代码中注入一些设计模式,但我不知道使用哪种样式 - 是继承还是接口首选?为什么?
在Java中覆盖方法时,可以调用"原始"方法.例如:
public class A extends B{
@Override
public void foo(){
System.out.println("yep");
// Then execute foo() as it's defined in B
}
}
Run Code Online (Sandbox Code Playgroud) 我们想使用Unity for IOC.我所看到的是有一个全局静态服务(我们称之为IOCService)的实现,它包含对Unity容器的引用,该容器注册所有接口/类组合,每个类都询问该对象:给我一个实现为Ithis或IThat.
我经常看到这种模式不好的响应,因为它导致从ALL类到IOCService的依赖(而不是Unity容器,因为它只在IOCService内部知道).
但我经常看不到的是:替代方式是什么?
米歇尔
编辑:发现全局静态服务被称为服务定位器,将其添加到标题中.
java ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
coding-style ×1
coupling ×1
dynamic-data ×1
hibernate ×1
hql ×1
javascript ×1
overriding ×1
performance ×1
python ×1
validation ×1
while-loop ×1
wildcard ×1