问题列表 - 第37292页

如何在 JPA 领域模型中实现状态设计模式

我想在 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)

java design-patterns jpa aspectj

5
推荐指数
1
解决办法
2370
查看次数

Ruby IMAP库不解码邮件主题

我的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库可以为我吗?

imap ruby-on-rails quoted-printable

4
推荐指数
1
解决办法
1413
查看次数

使用枚举实现层次结构的最佳C#模式是什么?

我正在实现代表距离(或长度)的值类型.有一个枚举代表不同的度量单位,例如:

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)

c# enums hierarchy

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

HTML5 android浏览器支持多少?

HTML5 android 2.2的浏览器支持多少?

有没有地方/ doc我可以找到android 2.2浏览器支持的所有HTML5标签.

感谢帮助.

html5 android webkit

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

Android如何更改应用程序标题

我需要更改应用程序标题,就像我移动到新标签页时一样.

我试图在string.xml中使用不同的字符串更改app_name,但这不是我想要的实际动态更改.

有没有其他方法可以做到这一点?

android

19
推荐指数
2
解决办法
4万
查看次数

如何禁用动态频率调整?

我想做一些微基准测试,并尝试做正确的.不幸的是,动态频率调整使得基准测试非常不可靠.

有没有办法以编程方式(C++,Windows)找出是否启用了动态频率调整?如果,这可以在程序中禁用吗?

香港专业教育学院曾试图在实际基准测试发生前使用100%CPU的预热阶段,但事实证明这也是不可靠的.

更新:即使我在BIOS中禁用SpeedStep,cpu-z显示频率在1995和2826 GHz之间变化

c++ windows benchmarking cpu-speed

3
推荐指数
1
解决办法
6591
查看次数

制作一个简单的登录页面

嘿所有..我想做一个简单的登录页面.我准备了两个文本域.

<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警报.但如果数据相同,会显示一些隐藏.你能告诉我怎么做吗?

javascript jquery login

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

在C++中获取"this"(当前实例)的副本

我想要一份当前运行的实例的副本.

当我更改副本中的值时,原始对象也会受到影响.该副本充当实例.

怎么避免这个?我需要创建一个调用对象的独立副本.

 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)

c++ operator-overloading

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

递归地搜索数组中的键

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)

嘿,此方法在关联数组中搜索特定键并返回与其关联的值.递归有一些问题.任何线索?

php arrays recursion search

20
推荐指数
3
解决办法
2万
查看次数

应用于包含图像的锚点的轮廓在 Chrome 中的高度不正确

对于我正在处理的网站,我希望在链接聚焦/悬停/活动时在链接周围出现虚线轮廓。我希望文本和图像链接发生这种情况。

我遇到的问题是,虽然我的代码在 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)

有一个更好的方法吗?

html css anchor image outline

3
推荐指数
1
解决办法
2028
查看次数