我想在 JPA 中实现状态设计模式。这篇博文中概述了我目前的做法。
作者使用包含所有可用状态实现的枚举,而不是为状态抽象创建抽象类/接口并为每个状态编写实现。我发现这种方法非常有用,因为枚举可以在 JPA 中轻松序列化,并且您可以无需额外工作即可存储对象的当前状态。我还将状态接口和所有状态类嵌套到枚举中,使它们成为私有的,因为它们是特定于实现的,不应该对任何客户端可见。这是枚举的代码示例:
public enum State {
STATE_A(new StateA()),
STATE_B(new StateB());
private final StateTransition state;
private State(StateTransition state) {
this.state = state;
}
void transitionA(Context ctx) {
state.transitionA(ctx);
}
void transitionB(Context ctx) {
state.transitionB(ctx);
}
private interface StateTransition {
void transitionA(Context ctx);
void transitionB(Context ctx);
}
private static class StateA implements StateTransition {
@Override
public void transitionA(Context ctx) {
// do something
ctx.setState(STATE_B);
}
@Override
public void transitionB(Context ctx) {
// do something
ctx.setState(STATE_A);
} …Run Code Online (Sandbox Code Playgroud) 我的Gmail帐号中有以下主题的邮件:
"400,значение,значение"
这是我用来抓邮件的代码:
imap = Net::IMAP.new('imap.gmail.com', 993, true, nil, false)
imap.login(LOGIN, PASSWORD)
imap.select("INBOX")
messages = imap.search(['ALL']).map do |message_id|
msg =imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
result = {:mailbox => msg.from[0].mailbox, :host => msg.from[0].host, :subject => msg.subject, :created_at => msg.date}
imap.store(message_id, "+FLAGS", [:Deleted])
result
end
imap.expunge()
imap.logout
Run Code Online (Sandbox Code Playgroud)
在msg.subject中,我得到以下值"=?KOI8-R?B?MTAwLCDixc7ayc4sIDMwMDAgzMnU0s/X?="
似乎IMAP没有解码它.我应该手动或IMAP库可以为我吗?
我正在实现代表距离(或长度)的值类型.有一个枚举代表不同的度量单位,例如:
public enum DistanceUnit
{
Millimeter,
Centimeter,
Meter,
Kilometer,
Inch,
Foot,
Yard,
Mile
};
Run Code Online (Sandbox Code Playgroud)
这些测量属于两个系统中的一个 - 公制或英制.由于枚举不支持hierachies,表示这种层次结构的最佳模式是什么?
它是否使用位标志?或者使用两个单独的枚举以及一些方法来关联它们?或者声明静态成员而不是枚举?
给我一些建议?如何你实现这一点?
编辑 - 更多说明:我有几个不可变的结构(由T4生成)代表各种测量:
public struct Meters : IEquatable<Distance>,
IEquatable<Meters>,
IEquatable<Millimeters>, ... IComparable<> etc.. etc..
{
public readonly decimal Value;
...
public static implicit operator Distance (Meters other) {
// Can implicitly cast to Distance
}
}
public struct Millimeters ...
public struct Centimeters ....
Run Code Online (Sandbox Code Playgroud)
...等,以及手动编码的不可变距离,旨在表示任何度量:
public struct Distance : IEquatable<Distance>,
IEquatable<Meters>,
IEquatable<Millimeters>, ...
IFormattable
{
public readonly …Run Code Online (Sandbox Code Playgroud) HTML5 android 2.2的浏览器支持多少?
有没有地方/ doc我可以找到android 2.2浏览器支持的所有HTML5标签.
感谢帮助.
我需要更改应用程序标题,就像我移动到新标签页时一样.
我试图在string.xml中使用不同的字符串更改app_name,但这不是我想要的实际动态更改.
有没有其他方法可以做到这一点?
我想做一些微基准测试,并尝试做正确的.不幸的是,动态频率调整使得基准测试非常不可靠.
有没有办法以编程方式(C++,Windows)找出是否启用了动态频率调整?如果,这可以在程序中禁用吗?
香港专业教育学院曾试图在实际基准测试发生前使用100%CPU的预热阶段,但事实证明这也是不可靠的.
更新:即使我在BIOS中禁用SpeedStep,cpu-z显示频率在1995和2826 GHz之间变化
嘿所有..我想做一个简单的登录页面.我准备了两个文本域.
<input type="text" id="user">
<input type="password" id="password">
<input type="button" id="go">
Run Code Online (Sandbox Code Playgroud)
我想点击#go脚本后可以检查:
if #user value != "admin"
then #password value != "qaubuntu"
Run Code Online (Sandbox Code Playgroud)
将显示和JS警报.但如果数据相同,会显示一些隐藏.你能告诉我怎么做吗?
我想要一份当前运行的实例的副本.
当我更改副本中的值时,原始对象也会受到影响.该副本充当实例.
怎么避免这个?我需要创建一个调用对象的独立副本.
Set operator+(Set s){
Set temp = *this;
for(int i=0; s.elements[i] != '\0'; i++){
temp(s.elements[i]);
}
temp.elements[0] = 'X'; // <- this affects calling object also :(
return temp;
}
Run Code Online (Sandbox Code Playgroud) private function find($needle, $haystack) {
foreach ($haystack as $name => $file) {
if ($needle == $name) {
return $file;
} else if(is_array($file)) { //is folder
return $this->find($needle, $file); //file is the new haystack
}
}
return "did not find";
}
Run Code Online (Sandbox Code Playgroud)
嘿,此方法在关联数组中搜索特定键并返回与其关联的值.递归有一些问题.任何线索?
对于我正在处理的网站,我希望在链接聚焦/悬停/活动时在链接周围出现虚线轮廓。我希望文本和图像链接发生这种情况。
我遇到的问题是,虽然我的代码在 Firefox 和 IE 中运行良好,但在 Chrome 7.0.517.41 中,虚线轮廓与我的文本高度相同,而不是图像的高度。
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<style type="text/css">
BODY { font: 15px/1.5 sans-serif; }
a:focus, a:hover, a:active { outline: 1px dotted #11aa22; }
</style>
</head>
<body>
<a href="#">
<img src="http://sstatic.net/stackoverflow/Img/wmd-buttons.png" />
</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这很烦人。作为一种解决方法,我使用 javascript 应用一个类来区分包含图像的锚点,并确保将包含图像的锚点的轮廓应用于锚点,而不是图像:
a:focus, a:hover, a:active { outline: 1px dotted #11aa22; }
a:focus.img, a:hover.img, a:active.img { outline: none; }
a:focus img, a:hover img, a:active img { outline: 1px dotted #11aa22; }
Run Code Online (Sandbox Code Playgroud)
在我准备好的文件中
$('a:has(img)').addClass('img');
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?