'분류 전체보기' 카테고리의 글 목록 (6 Page)
본문 바로가기
728x90
반응형

분류 전체보기826

2022-07-10-메멘토패턴-3부-장점과단점 01.장점 객체내부의 상태를 외부에 노출하지 않아도 메멘토로 캡슐화해서 객체상태의 스냅샷을 만들 수 있음 코드 자체를 유연하게 만들어줌 변경이나 추가되더라도 클라이언트 코드가 변경되지 않음 메멘토같은 객체는 언제든지 변경이 되는 경우 바뀔 수 있지만 클라이언트는 바뀔이유가 없음 careTaker역할 같은것 기존 상태를 저장하는것을 하나 또는 여러개를 저장한것을 부여한것 careTaker는 단일책임 원칙을 지키는 것 이라고 볼 수 있음 02.단점 메멘토 객체가 엄첨 많은 정보가 있다면 메모리 자체에 부하를 줄 수 있고 careTaker가 이런 오래된것을 지우고 그런 유지하는 역할을 해야할 수도 있음 2022. 7. 18.
2022-07-10-메멘토패턴-2부-패턴적용하기 01.메멘토 패턴 적용하기 Client를 careTaker로쓰기 memento역할이 중요 상태를 저장할것은 GameSave로 클래스 생성 상태 정보가 바뀌면 안된다 그래서 final을 사용함 public final class GameSave { private final int blueTeamScore; private final int redTeamScore; public GameSave(int blueTeamScore, int redTeamScore) { this.blueTeamScore = blueTeamScore; this.redTeamScore = redTeamScore; } public int getBlueTeamScore() { return blueTeamScore; } public int ge.. 2022. 7. 18.
2022-07-10-메멘토패턴-1부-패턴소개 01.메멘토패턴 객체내부의 상태를 외부에 저장하고 그 저장소의 정보를 보관하고 싶을때 사용하는 패턴 객체내부의 상태 외부에 저장하려면 그 것이 외부에 온전히 노출되어야하는데 캡슐레이션을 지키면서 공개안하면서 외부에 저장하고 그대로 복원하는 방법임 대개 IDE는 Undo, 게임 시 일시정지후 다시 진행할 수 있는 것이 있는데 그것을 토대로 설명할것임 02.코드로 알아보기 02.1 Client.java public class Client { public static void main(String[] args) { Game game = new Game(); game.setRedTeamScore(10); game.setBlueTeamScore(20); int blueTeamScore = game.getBlueT.. 2022. 7. 18.
2022-07-07-이터레이터패턴-3부-장점과단점 01.장점 집합 객체가 가지고 있는 객체들에 손쉽게 접근할 수 있다. 우리가 알아야하는것 집합 객체가 이터레이터로 제공했을때 이터레이터만 알면될뿐 무엇으로 되어 있는지 알필요가 없음 그냥 has next, next만 알면되고, 이것은 단일 책임원칙에 일치한다. 일관된 인터페이스를 사용해 여러 형태의 집합 구조를 순회할 수 있다. 02.단점 클래스가 늘어나고 복잡도가 증가한다. 새로운 이터레이터 방법을 추가하는 경우 기존 이터레이터 변경하지 않고 새로 만들수 있는데 문제는 이렇게 만들면 따로 제공하는것을 Board쪽 aggreagate쪽에 만들어야함 2022. 7. 18.
728x90
반응형