Java

String getName()

void setName(String name)


자바의 이런 캡슐화 안정성이라는 사이비 믿음을 버리고(결국은 데이터 접근하고 수정하는데 함수로 만들면 캡슐화? 안정성? 이것 자체가 사이비)


다트나 js는 바로 접근할수 있어서 좋은데


Dart

String name; // 끝!



플러터 특유의 객체병(객체-19)은 또 모든 변수를 굳이 final로 선언하고 @freezed 같은패키지 써서 명령어 실행하고 자동화 코드로

copyWith 만들고 쇼하는 결국 돌고 돌아 객체병 걸리는 전염병을 유행시키고 있더라.


Dart

final String name; (변할수 있는 값을 굳이 final로 선언함)

변수수정 못하니 copyWith라는 메소드를 만듬

User copyWith({String? name, int? age}) => User(name: name ?? this.name, age: age ?? this.age);


그리고 값 바꿈(코미디)

user = user.copyWith(name: '새이름'); Setter를 부르는 더 귀찮은 방법


그리고 외침.

와! 안전하다!(실제로는 값 바뀜