如果你有一个工厂类来创建某种新的对象,那个factroy类是一个单例,如下所示:
class Database_Factory extends Base_Factory {
private static $factory;
private $objects = array();
public function __get($profile) {
// check for object and return it if it's created before
}
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Run Code Online (Sandbox Code Playgroud)
当某个对象需要它自己的工厂时,相同的代码会重复.所以我决定将这个工厂类抽象化,并且只为每个工厂实现特定的例程.但PHP不允许实例化抽象类.
abstract class Base_Factory {
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
Run Code Online (Sandbox Code Playgroud)
致命错误:无法实例化抽象类Base_Factory
你会怎么做?
我想在perl程序中获得一个问题的解决方案.
$parallel_on=='YES'? my $pid = $pm->start and next; :0;
Run Code Online (Sandbox Code Playgroud)
我希望成为这样的声明.但我没有得到解决.可以请任何人解决这个问题吗?
我试图用几个参数通过Python调用一个进程.执行批处理文件本身对我来说很好,但将其翻译成Python会让我尖叫.这里是批处理文件的内容:
"C:\Program Files\bin\cspybat" "C:\Program Files\bin\armproc.dll" "C:\Program Files\bin\armjlink.dll" "C:\Documents and Settings\USER\Desktop\CAL\testing\Verification\FRT\Code\TC1\Output\Genericb\Debug\Exe\Gen.out" --download_only --backend -B "--endian=little" "--cpu=Cortex-M3" "--fpu=None" "-p" "C:\Program Files\CONFIG\debugger\ST\iostm32f10xxb.ddf" "--drv_verify_download" "--semihosting" "--device=STM32F10xxB" "-d" "jlink" "--drv_communication=USB0" "--jlink_speed=auto" "--jlink_initial_speed=32" "--jlink_reset_strategy=0,0"
Run Code Online (Sandbox Code Playgroud)
批处理文件运行的可执行文件已命名cspybat.可执行文件的输出提供了以下信息:-- All parameters afterbackend are passed to the back end.
另请注意,有些参数是字符串,有些则不是.
解
这对我有用:
""" MCU flashing function"""
params = [r"C:\Program Files\bin\cspy",
r"C:\Program Files\bin\arpro.dll",
r"C:\Program Files\bin\arjink.dll",
r"C:\Documents and Settings\USER\Desktop\Exe\GenerV530b.out",
"--download_only", "--backend", "-B", "--endian=little", "--cpu=Cort3", "--fpu=None", "-p",
r"C:\Program Files\CONFIG\debugger\ST\iostm32f10xxb.ddf",
"--drv_verify_download", "--semihosting", "--device=STM32F10xxB", "-d", "jlink", "--drv_communication=USB0",
"--jlink_speed=auto", "--jlink_initial_speed=32", "--jlink_reset_strategy=0,0" ]
print(subprocess.list2cmdline(params)) …Run Code Online (Sandbox Code Playgroud) 我在扩展扩展 Ordered[Base] 的基类时遇到问题。我的派生类无法扩展 Ordered[Derived],因此无法用作 TreeMap 中的键。如果我创建一个 TreeMap[Base],然后只覆盖 Derived 中的比较,这可以工作,但这不是我想要的。我希望能够将派生类作为密钥。有没有解决的办法?
case class A(x: Int) extends Ordered[A] {
def compare(that: A) = x.compare(that.x)
}
// Won't compile
// case class B(val y : Int) extends A(1) with Ordered[B] {
// def compare(that: B) = x.compare(that.x) match {
// case 0 => y.compare(that.y)
// case res => res
// }
// }
// Compiles but can't be used to define a TreeMap key
case class B(y: Int) extends A(1) {
override def compare(that: …Run Code Online (Sandbox Code Playgroud) OSGi是一个用于Java的动态模块化系统.好的,但基线主题是什么,为什么OSGi开发了?使用OSGi有什么好处?开发OSGi的主要故事是什么?它为什么存在?
最近我接受了一家软件公司的采访.我没有通过第一轮本身.
也许我在形成想法或解决问题方面太慢,对我采访的公司来说也不够好.我想对我的访谈有第二个意见,我找不到比stackoverflow社区更好的人.
所以这次采访是基本的
原始技术问题(由面试官提出)
给定一个数字范围M ...... M + N-1我构造一个大小为N的数组,并用数字替换该数组中的一个元素.您如何找到替换的元素?
我让他再次重复这个问题,因为我认为输入不足以解决问题.他重复了同样的声明
问:然后我问他是按照排序顺序从数字范围得到的数组?
采访者:没必要
问:在替换元素之前,我们是否知道数组?
采访者:没有
然后我开始写一些伪代码(同时做大声思考).我立即意识到,如果原始数组有重复,它就无法工作.所以我一会儿想着要解决这个问题.然后我终于问了一些重要的问题
问:如何从Range中选择元素来形成数组?
采访者:我有一个数字范围M,M + 1,M + 2 ...... M + N-1.一个数字只被选中一次.我形成一个大小为N的数组.(这实际上意味着没有重复项,并且范围内的所有元素都被选中)
问你用它替换它的数量怎么样?它是否在同一范围内?
采访者:是的.
然后一切都变得清晰
这就是他的意思:
QI有一系列从M开始的数字,如M,M + 1,M + 2,M + 3 ...... M + N. 我形成一个大小为N的数组,这样每个元素只被选中一次,原始数组没有任何重复.我用相同范围内的数字替换数组中的一个元素.找出我从该系列中挑选出来的产品?
这相当于在数组中查找重复项.在替换后,将只有一对副本我们可以很容易地在O(N ^ 2)时间或O(nlogn)时间内找到它.我给了他两个算法.
最后,我无法抗拒地问他"我是怎么在这个问题上表现的?他说好了你花了很多时间回答.
显然他对我对这个问题的处理方式不满意.
在回答这个问题时,您认为我应该做些什么?
我在C++中有以下功能
void func1()
{
char *p = "Test for memory leak";
}
Run Code Online (Sandbox Code Playgroud)
何时func1()被调用哪里是分配的变量的内存?无论是在堆栈还是堆中?应该delete p;明确调用?
就像在jQuery中我们可以使用$(".classname"),javascript中也有类似的东西吗?或者,如果我们没有这样的方法,那么我该如何实现呢.
根据http://www.dustindiaz.com/getelementsbyclass/, 我将遍历所有标签,然后收集所有与指定类相同的元素.
有没有更好的解决方案?
我试图根据网格中的值在DojoX(1.2.3)网格中设置一个Row的样式.
网格布局:
var view1 = {
noscroll: true,
rows: [{
field: 'TASK_ID',
name: 'ID',
width: '80px',
get: this.getColor
}, {
field: 'MENUPOINT',
name: 'Action',
width: '250px'
}]
};
Run Code Online (Sandbox Code Playgroud)
getColor函数:
getColor: function(inRowIndex) {
console.log(inRowIndex);
grid = dijit.byId('gridTaskCurrent');
// if task_id = 1 style row with other background(?)
},
Run Code Online (Sandbox Code Playgroud)
我不知道如何从每一行获取task_id值并为行设置样式..如果有人有一个很好的链接或知道如何做...那将是伟大的.
这段代码有什么问题吗?尝试让我的文本插入到文本框的开头而不是底部。
私人无效execute_Click(对象发送者,EventArgs e){
startFinshBox.Text = "开始时间:" + printTime()+"";
startFinshBox.Text.Insert(0,printTime()+": 检索结果...\n");
}
但它不会将第二行插入到 rtb 中。我也尝试过 startFinishBox.SelectionStart = 0 ,但没有什么区别。我还缺少其他东西吗?
谢谢,齐
algorithm ×1
c# ×1
c++ ×1
covariance ×1
css ×1
dojo ×1
grid ×1
inheritance ×1
javascript ×1
memory-leaks ×1
osgi ×1
perl ×1
php ×1
python ×1
richtextbox ×1
scala ×1
singleton ×1
subprocess ×1
syntax ×1
visual-c++ ×1