具有当前线程类型权限的单例模式

时间:2016-05-09 20:03:55

标签: java design-patterns singleton access-control

我对通过构造函数传递参数来实例化POJO不感兴趣。我的设计也是如此,我只需要每种类型的一个实例。不希望从每种类型中实例化更多Object 所以让我们考虑我有一个班级Launcher.java。我使用单例模式并通过static getInstance()方法获取一个实例。 Launcher.java需要名为Transceiver.java的组件。我也通过单例模式实例化这个类 现在我想,例如,仅将一些参数传递给我的Transceiver,并且只传递Launcher个实例。
我的工作是:

public void setParameter (int parameter) throws IllegalTypeAccessException
{
    if (Strand.getCurrentStrand() instanceof Launcher)
    // or if (Thread.getcurrentThread() instanceof Launcher)
    {
        this.parameter = paramater;
    }
    else
    {
        IllegalTypeAccessException e = new IllegalTypeAccessException(Strand.getCurrentStrand().getClass().getTypeName()
                                   + " Is not authorized to set property for this object");
        throw e;
    }
}

通过这样做,可以控制未经授权的访问。只有一种Java类型可以设置它们,因为我对我使用的每种类型使用单例模式,那么只有一个对象可以做到这一点。访问权限是根据TypeInstance来控制的。
也没有必要在构造函数中进行无聊和容易出错的参数。
现在我想问一下,在这种设计中我应该考虑哪些缺陷?使用这种模式会遇到问题吗? 如果您认为可以改进以获得专业答案,请随时编辑我的问题。

0 个答案:

没有答案