就看你想要达到的意思,在找了用单例模式没有意义。
唯一解决的办法就是用第一种方式。
或者修改你的需求,让他认同第二种情况。
希望对你有帮助。
你的Person都已经单例了,说明你只有一个人,那你的list要来干嘛?
面向对象的设计模式,首先要清楚你的业务需求场景,比如你的list里想装多个人,你的人的类却是单例的,这不是自相冲突的吗?
有问题请追问!
祝楼主学业进步!
Person.getInstance()返回的就是同一个东西,变不了的,其实你想想,Person对象你不new是不会出来的,也就是说无论如何你都需要new出来N个Person对象,Person不会凭空出现,个人认为,从提高效率角度来看这个new是省不了的
个人认为 ,暂时没有办法解决,因为 单例模式的情况下 , Person p = Person.getInstance(); p 引用型变量 的值 是不会变的,所以当 p.setName = arr[i]; 都是指向同一个实例。
list里添加的是对象,对象如果使用单例第一次创建后就不会再创建新的对象,p.setName其实始终是在对一个对象赋值,list每次添加的其实也是一个对象。可以把对象看做一个地址应该就很好理解你犯得错误了
你的目的是在list里面保存不同的person
但是你又用了singleton的getInstance方法,造成list里面都是同一个对象
先好好学下singleton的应用场景吧,这种情况就不应该用singleton
不要因为学了这个设计模式就不管三七二十一乱用