我有一个类似这样的Java类
public class MyObjectUtil {
private final MyObject myObject;
public MyObjectUtil (MyObject myObject){
this.myObject = myObject;
}
public boolean isSomeInfoPresentValid() {
return myObject.isSomething();
}
public void modifyMyObjectInSomeWay(String blah) {
myObject.modify(blah);
}
}
Run Code Online (Sandbox Code Playgroud)
每次我都要实例化我的Utility类来与MyObject的特定实例进行交互.
myObject作为Session obj出现
MyObjectUtil myObjUtil = new MyObjectUtil(myObject);
myObjUtil.modifyMyObjectInSomeWay("blah");
boolean valid = myObjUtil.isSomeInfoPresentValid();
Run Code Online (Sandbox Code Playgroud)
为了获得相同的结果,我可以使用静态函数,每次使用myObject作为方法参数执行相同的操作.
public class MyObjectUtil {
public static boolean isSomeInfoPresentValid(MyObject myObject) {
return myObject.isSomething();
}
public static void modifyMyObjectInSomeWay(MyObject myObject, String blah) {
myObject.modify(blah);
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道应该走哪条路.
我在我的控制器中使用Util类,有时我需要针对同一个myObject实例调用几个方法,所以对我来说第一个解决方案似乎更正确.同时,由于myObject与特定的http请求相关,因此我对控制器的请求很多,因此每次都可以创建大量的MyObjectUtil实例.
在我的情况下,我应该选择哪种方式?在其他情况下我应该如何选择?
某些Utilities类(如MyObjectXXXUtil MyObjectYYYUtil)以特定方式使用MyObject.我想从特定的MyObject实现中保留这些Util方法(修改myObject并检查特定状态),因为它们并不特定于此.许多Util函数可以以某种方式与MyObject交互.
我是Windows Azure的新手,想要托管一个由appr填写的调查应用程序.同时有30.000名用户.
该应用程序由一个.aspx页面组成,该页面将被发送给客户端一次,询问25个问题,并在最后给出给定答案的总结.当用户给出答案并点击"下一个问题"按钮时,给定的答案将通过.ashx处理程序发送到服务器.答案是下一个问题和答案.完整回发后,总结将发送给客户端.答案保存在已分区的Azure表中,以便每个分区最多可容纳450个用户.
我想问一下是否有人可以估计我们需要启动多少个Web角色实例才能让这个应用程序继续运行.(如果这太难说了,是否更有可能启动5,50或500个实例?)
什么是更好的方法:20个小实例或5个大实例?
谢谢你的帮助!
Dim f as new frmNameHere
f.show()
Run Code Online (Sandbox Code Playgroud)
如何frmNameHere使用上面的代码找到所有创建的实例?
我在Win7 PC上安装了Tomcat 6.0.我使用64/32bit windows安装.在Eclipse中,我能够设置路径并设置服务器以使用我的Tomcat安装.一切似乎工作正常,直到我从Eclipse内部运行服务器.
我注意到http:// localhost:8080/index.html页面不可用(Tomcat默认主页).我也无法访问http:// localhost:8080/axis2.我也安装了Axis2.
由于我很难长时间制作简单的axix2 Web服务,我想也许这个Tomcat的Eclipse实例正在增加我的问题?
当我从Windows GUI启动Tomcat时,一切都按照我的预期运行.
有任何想法吗?
谢谢.
我想知道同步多个运行相同角色的azure实例的最佳实践.更准确地说,我想阻止几个工作者角色在同一个工作单元上工作.
Azure队列似乎对此事没有帮助.一种选择是使用带锁和存储过程的sql表; 但在Azure中使用sql同步似乎有点尴尬.
有任何想法吗?
编辑,我的详细(但简化的问题)如下:
我的想法是,我有一个调度程序,将工作单元放在Azure队列中,每个m工作人员都会读取这些并处理它们.
问题:
我有一些想法,但它们似乎不够混浊,所以我有兴趣看看你会解决这个问题的解决方案.
我已经使用PHP很多年了,但有一部分我从未真正了解过,并且最近一直在想.
当我执行以下操作时:
var_dump(new test());
var_dump(new test());
var_dump(new test());
var_dump(new test());
Run Code Online (Sandbox Code Playgroud)
我明白了:
object(test)[1]
object(test)[1]
object(test)[1]
object(test)[1]
Run Code Online (Sandbox Code Playgroud)
所有这些对象都具有相同的编号.我得知系统没有将实例分配给变量,因此它几乎立即被破坏.但是当我做以下事情时:
var_dump($a = new test());
var_dump($a = new test());
var_dump($a = new test());
var_dump($a = new test());
var_dump($a = new test());
var_dump($a = new test());
Run Code Online (Sandbox Code Playgroud)
我明白了:
object(test)[1]
object(test)[2]
object(test)[1]
object(test)[2]
object(test)[1]
object(test)[2]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,第一个是1,然后第二个是2,但是它循环而不是坚持2.
我猜测应用第一个实例的变量会被第二个调用中的新实例覆盖(从而破坏它),但是为什么第三个调用会在分配之前破坏第二个实例(将实例增量返回到1) ?
我需要一个像这样工作的类:
>>> a=Foo()
>>> b=Foo()
>>> c=Foo()
>>> c.i
3
Run Code Online (Sandbox Code Playgroud)
这是我的尝试:
class Foo(object):
i = 0
def __init__(self):
Foo.i += 1
Run Code Online (Sandbox Code Playgroud)
它按要求工作,但我想知道是否有更多的pythonic方法来做到这一点.
我试图在定义这些对象的类中保持给定类的对象实例的计数.
首先我知道代码反射和ObjectSpace.each_object,但我不想使用反射,让类本身能够"照顾"自己.
我环顾四周,我发现的所有解决方案似乎都在类定义中使用了@@ class_variables,例如,这个问题的接受答案:如何在Ruby中获取类实例?
虽然我一直在阅读,但我发现ruby中的类变量在某些情况下表现得非常糟糕......最大的原因是:
在程序顶层定义的类变量由所有类继承.它的行为类似于全局变量.
来源及更多信息:http://ruby.runpaint.org/variables#class
所以,我尝试使用类实例变量而不是类变量来编写一个存储其实例化对象数量的类,显然它似乎工作正常但是因为我仍然在学习这种"深入的"语言主题我想问你我写的代码是否正确和/或有意义:
class Pizza
@orders = 0
def self.new
@orders += 1
end
def self.total_orders
@orders
end
end
new_pizza = Pizza.new #=> 1
special_pizza = Pizza.new #=> 2
fav_pizza = Pizza.new #=> 3
Run Code Online (Sandbox Code Playgroud)
我的一个疑问是,重写Pizza.new方法我"删除"原始.new方法的一些重要功能?(原始的.new方法提供了什么?我如何使用反射"检查"方法代码?)我还做错了什么,或者我的方法完全错误,为什么?
谢谢
编辑:忘了添加这个重要的一点:
作为一种更好地约束事物范围的方法,我希望Pizza类能够只计算对象实例化时间,而不是在其@instance类变量上有一个setter方法,可以在代码中随时访问它(Pizza.count = 1000).这就是我试图覆盖"新"的原因.
我认为这是最棘手的部分让我问自己我的方法是在正确的方向,或者我是否应该停止对这些语言机制的反应如此之多,而是添加一些逻辑来让计数只在一个对象发生时发生一个Pizza类进入了ObjectSpace ..
我只是在寻找更优雅,更臃肿的方式来获得这种语言功能..
无论哪种情况,帮助将不胜感激..
再次感谢.
ruby counter instances class-variables class-instance-variables
给出以下代码:
class C a where
foo :: a -> a
f :: (C a) => a -> a
f = id
p :: (C a) => (a -> a) -> a -> a
p g = foo . g
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试调用pf,GHC会抱怨:
> p f
No instance for (C a0) arising from a use of `p'
In the expression: p f
In an equation for `it': it = p f
Run Code Online (Sandbox Code Playgroud)
我觉得有点令人惊讶,因为f只接受一个必须是类型类C的实例的"a".这是什么原因?
编辑:我知道我没有为C定义任何实例,但不应该是"正确的"响应:
p f :: (C a) => a -> a
Run Code Online (Sandbox Code Playgroud) 我有一个Spring启动项目,它有一套单元测试,使用mockito的@InjectMocks来实例化被测试的类并注入可能存在的任何模拟.
换句话说,如果我有这个
@InjectMocks MyClass myClass;
然后我不需要
MyClass myClass = New MyClass();
或@Autowired MyClass myClass;
到目前为止,此设置工作正常.
但是最近,在运行测试时,必须能够访问项目的spring引导属性.这意味着必须在测试中使用SpringBoot任务运行器,以便@Autowire的任何实例(包括实例化Environment类的实例)都可以工作.
我发现如果@InjectMocks用于实例化一个类,那么类中@Autowired的任何实例都不起作用(它们应该创建的对象为null).这意味着没有Environment类,也无法访问Spring属性.
相反,我必须将@Autowired添加到@InjectMocks注释中
所以这
@InjectMocks MyClass myClass;
变成了这个
@Autowired
@InjectMocks MyClass myClass;
我的问题很简单.这样做有什么不对吗?它是否会实例化myClass或做任何可能导致故障的事情