내가 읽은 바는 이터티 (Immutability) 란 할당 된 값이 상수로 남아 있음을 의미합니다. 즉, 일단 할당되면 코드 전체에 동일한 값으로 반영됩니다.불변과 싱글 톤이 같은 목적을 해결합니까?
주로 불변성은 다중 스레드 환경에서 기능 프로그래밍 패러다임에서 사용됩니다.
하지만.
는
package com.main;
class Student{
private Student(){
}
public static Student INSTANCE;
static{
INSTANCE = new Student();
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString(){
return "Student is "+this.name;
}
}
public class SingletonTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student = Student.INSTANCE;
student.setName("Arnold");
student = Student.INSTANCE;
student.setName("Kevin");
student = Student.INSTANCE;
student.setName("Jim");
student = Student.INSTANCE;
student.setName("Falcon");
student = Student.INSTANCE;
student.setName("Sarvik");
student = Student.INSTANCE;
System.out.println(student);
}
}
가
위의 코드의 출력은 같은에서
Student is Sarvik
인, 자바로 작성 싱글의를 검색, 싱글 톤 패턴은 같은 목적을 해결합니까 저는 싱글 톤을 자바 스크립트로 작성했습니다.
var Student = (function(){
var name = "";
var obj = {
setName : function(studentName){
name = studentName;
},
getName : function(){
return name;
}
}
return {
INSTANCE : obj
}
})();
var student = Student.INSTANCE;
student.setName("Arnold")
student = Student.INSTANCE;
student.setName("Kevin");
student = Student.INSTANCE;
student.setName("Jim");
student = Student.INSTANCE;
student.setName("Falcon");
student = Student.INSTANCE;
student.setName("Sarvik");
student = Student.INSTANCE;
console.log("Student is "+student.getName());
모두
[email protected]ahul:~/myPractise/JavaScript-DesignPatterns$ node singleton.js
Student is Sarvik
[email protected]:~/myPractise/JavaScript-DesignPatterns$
를 다음과 같이 출력된다 (즉, javaScript 및 java) 싱글 톤 패턴 의 구현을 통해 객체의 상태가 변경되지 않는다는 것을 알 수 있습니다.
개체의 값을 다시 설정하더라도 출력은 최신 재설정 값을 제공합니다.
그래서 싱글 톤 패턴을 사용하여 "Student"객체 코드에서 불변성을 얻었습니까?
http : // stackoverflow.com/questions/13784244/are-all-immutable-objects-singleton-instances – Unknown
단일성과 불변성은 직교합니다. 싱글 톤은 변경 가능하거나 변경 불가능할 수 있습니다. non-singleton은 변경 가능하거나 변경 불가능할 수 있습니다. 그러나 싱글 톤 *은 여러 스레드에서 사용되는 경우 스레드 안전성이 있어야합니다. 변경 불가능한 객체는 기본적으로 스레드로부터 안전합니다. –
'학생'클래스는 명확하게 변경할 수 없습니다 : 설정 메소드가 있습니다. –