单例模式中,保存对象的属性应该是私有的,静态的属性

来源:5-3 [php]单例模式

丑九怪

2015-02-06 10:44

Rango,你好,你的单例模式中,保存对象的属性,设置有错,不能设置为普通属性,至少应该确保为静态属性,其次如果设置为protected权限,那么他的继承类就可以修改他了,我觉得不好。

此外,还应该创建__clone()方法防止对象被复制。

以上是我的个人观点,不知是否没有理解你的用意,希望可以解答下。谢谢

写回答 关注

3回答

  • 野生的程序猿一只
    2018-06-27 19:28:23

    标准的单例模式:

    @Data

    public class EagleDeviceInfo {

    private String IP;

    private String port;

    private EagleDeviceInfo() {

    }

    private static EagleDeviceInfo deviceInfo;

    public static EagleDeviceInfo getInstance(){

    if(deviceInfo==null)

    deviceInfo = new EagleDeviceInfo();  

    return deviceInfo;

    }

    }

  • 野生的程序猿一只
    2018-06-27 19:20:06

    今天感觉不对,同一个对象的属性为什么要保持静态特性

  • 老油条007
    2015-12-24 14:45:36

    有同感,防止外部拷贝对象

大话PHP设计模式

帮助PHPer具备使用设计模式解决工程中复杂逻辑的能力

62160 学习 · 230 问题

查看课程

相似问题