我正在审查我编写的一些代码的一位新合作者告诉我,她不习惯看到直接在Java代码中使用的接口,例如:
public interface GeneralFoo { ... }
public class SpecificFoo implements GeneralFoo { ... }
public class UsesFoo {
GeneralFoo foo = new SpecificFoo();
}
Run Code Online (Sandbox Code Playgroud)
相反,期待看到
public interface GeneralFoo { ... }
public abstract class AbstractFoo implements GeneralFoo { ... }
public class SpecificFoo extends AbstractFoo { ... }
public class UsesFoo {
AbstractFoo foo = new SpecificFoo();
}
Run Code Online (Sandbox Code Playgroud)
我可以看到这个模式何时有意义,如果所有SpecificFoos通过AbstractFoo共享功能,但如果各种Foos有完全不同的内部实现(或者我们不关心特定的Foo如何做Bar,只要它这样做),直接在代码中使用接口有什么害处吗?我在某种程度上意识到这可能是一个番茄/西红柿的东西,但我很好奇第二种风格的优势,或者第一种风格的缺点,我不知道.
我对mootools有点新意,但我知道在jQuery中你可以有更多的那个函数(在多个文件中):
$(document).ready(function() {
// put all your jQuery goodness in here.
});
Run Code Online (Sandbox Code Playgroud)
但你能用mootools做类似的事情吗?
我已经有了一个window.addEvent( "domready", function() {已经在我的页面中,我真的不想完全改变那段代码,但我希望能够在标题中的单独文件中添加另一个domready函数.
这可能吗?或者我只是想以另一种方式解决这个问题?
我分析了一些在 Linux 上运行的非常简单的 C++ 程序。main() 的包含成本远非 100%,大约为 3.83%。我是否正确使用了 callgrind?我在下面粘贴了callgrind_annotatewith的输出--inclusive=yes。
该程序称为堆,它执行简单的堆排序。我使用的命令是
valgrind --tool=callgrind ./heap
Run Code Online (Sandbox Code Playgroud)
然后,我输入
callgrind_annotate --inclusive=yes callgrind.out.25434
Run Code Online (Sandbox Code Playgroud)
输出:
`--------------------------------------------------------------------------------
Profile data file 'callgrind.out.25434' (creator: callgrind-3.6.0)
`--------------------------------------------------------------------------------
I1 cache:
D1 cache:
LL cache:
Timerange: Basic block 0 - 361578
Trigger: Program termination
Profiled target: ./heap (PID 25434, part 1)
Events recorded: Ir
Events shown: Ir
Event sort order: Ir
Thresholds: 99
Include dirs:
User annotated:
Auto-annotation: off
`--------------------------------------------------------------------------------
Ir
`--------------------------------------------------------------------------------
2,552,558 PROGRAM TOTALS
`--------------------------------------------------------------------------------
Ir file:function
`-------------------------------------------------------------------------------- …Run Code Online (Sandbox Code Playgroud) 我有一个问题:
MyModel.query.filter(Mymodel.name.contains('a_string'))
Run Code Online (Sandbox Code Playgroud)
我需要做同样的查询但是使用否定(不喜欢运算符)但是在SQLAlchemy文档中没有找到符合我需要的运算符.
有没有办法不使用SQLAlchemy的SQL部分???
我需要计算字符串的哈希码并将其存储到'long'变量中.
MD5和SHA1产生的哈希码长度超过64位(MD5 - 128位,SHA1 - 160位).
想法任何一个?
干杯,
多伦
我正在浏览django的源代码并查看了get_or_create.不应该用交易包裹吗?
谢谢
我正在为Android开发RSS新闻源应用程序,并Toast.makeText()用于显示新闻或当前更新.它必须在点击该消息/新闻时上网.问题是Toast没有API /功能,我可以点击它并在网上阅读完整的文章.
主要要求是我需要逐个显示新闻,因此我无法使用列表或任何其他小部件.
任何人都可以建议我应该用什么UI元素来解决这个问题?
答案可以是vanilla js或jQuery.如果用户不再悬停在ID为"myLink"的链接或ID为"mySpan"的范围内,我想隐藏ID为"myDiv"的div.如果用户将鼠标悬停在任一元素上,"myDiv"仍将显示,但第二个用户不会将鼠标悬停在两者之一(用户的鼠标首先离开哪个元素无关紧要)"myDiv"将从脸部消失存在
换句话说,这是我在一个元素上检测鼠标离开的方式:
$('#someElement').mouseleave(function() {
// do something
});
Run Code Online (Sandbox Code Playgroud)
但怎么说(以某种方式实际工作):
$('#someElement').mouseleave() || $('#someOtherElement').mouseleave()) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
怎么检测到这个?
我正在尝试实现一个简单的任务,我在表中创建一个新列,然后立即尝试将同一个表中其他一些列的值复制到新创建的列中但是我得到了一个
列名称"COMMENT_TMP"无效.错误
SQL是
列名称"COMMENT_TMP"无效.
ALTER TABLE TASK_COMMENT ADD COMMENT_TMP text;
UPDATE TASK_COMMENT SET TASK_COMMENT.COMMENT_TMP = COMMENT;
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过使用 gdb 内的 run < inputfile 重定向输入(以获取)来对 DVL 进行特定的利用
我可以成功地溢出程序,但在将十六进制值附加到字符串时遇到问题。我尝试过引用、将 mem addr 的值转换为 ascii 以及各种转义尝试(\、\、\),但没有成功
输入文件示例:AAAA\x42
在上面的示例中,反斜杠似乎被读取为 ascii 字符 (5c),并且值 42 保留在堆栈中(奇怪?)。
如何在 gdb 输入文件中指定十六进制值?
谢谢
javascript ×2
jquery ×2
algorithm ×1
android ×1
callgrind ×1
coding-style ×1
copy ×1
cryptography ×1
django ×1
feed ×1
gdb ×1
hash ×1
hex ×1
java ×1
md5 ×1
mootools ×1
negation ×1
orm ×1
profiling ×1
rss ×1
sha1 ×1
sql-server ×1
sqlalchemy ×1
t-sql ×1
valgrind ×1