问题列表 - 第28477页

得墨忒耳定律和返回值

根据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),你将如何处理这种情况?

language-agnostic coupling law-of-demeter

5
推荐指数
2
解决办法
407
查看次数

将versionnumber附加到asp:ScriptManager的compositescript标签

我们正在尝试使以下方案工作:

我们使用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中呈现的内容中

你的安德烈亚斯

javascript asp.net scriptmanager

7
推荐指数
1
解决办法
2409
查看次数

如何向开发人员解释添加额外的if - else如果条件不是"提高"可读性的好方法?

最近我碰到了以下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的借口?

performance coding-style

9
推荐指数
3
解决办法
675
查看次数

使用ASP.NET MVC 2.0支持嵌套模型和类验证

我正在尝试使用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

6
推荐指数
1
解决办法
2153
查看次数

基本Python While循环复合条件评估

在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中实现相同的功能?

python conditional-operator while-loop

0
推荐指数
1
解决办法
1621
查看次数

如何在HQL中的"like"子句中转义通配符?

如何在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!

有任何想法吗?

hibernate hql wildcard

9
推荐指数
1
解决办法
1万
查看次数

在实体框架中禁用外键暴露?

当我最初创建动态数据项目时,我告诉它公开外键,但现在我无法在外键的两个实体之间进行映射。当我在专注于关联时单击映射详细信息时,我收到以下消息:

映射不允许通过暴露的外键进行关联。

因此,我想禁用外键的暴露,但不确定如何在不从头开始创建新实体模型的情况下执行此操作。我还没有走得太远 - 所以这并不难,但我想必须有一个程序化的切换?

entity-framework dynamic-data entity-framework-4

2
推荐指数
1
解决办法
4032
查看次数

选择继承或接口来实现Java中的设计模式?

我只是想在我的Java代码中注入一些设计模式,但我不知道使用哪种样式 - 是继承还是接口首选?为什么?

java design-patterns

2
推荐指数
2
解决办法
597
查看次数

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)

java overriding

5
推荐指数
2
解决办法
2376
查看次数

如何在没有全局静态服务(非服务定位器解决方案)的情况下实现IOC?

我们想使用Unity for IOC.我所看到的是有一个全局静态服务(我们称之为IOCService)的实现,它包含对Unity容器的引用,该容器注册所有接口/类组合,每个类都询问该对象:给我一个实现为Ithis或IThat.

我经常看到这种模式不好的响应,因为它导致从ALL类到IOCService的依赖(而不是Unity容器,因为它只在IOCService内部知道).

但我经常看不到的是:替代方式是什么?

米歇尔

编辑:发现全局静态服务被称为服务定位器,将其添加到标题中.

c# ioc-container inversion-of-control unity-container

30
推荐指数
3
解决办法
7174
查看次数