분류 전체보기 192

예제_입문 31 string과 stringBulider의 차이점

string 객체의 값은 한 번 만들면 변경할 수 없다. 이것을 불변(immutable)객체라고 한다. 만약 객체를 변경할 경우가 생긴다면 변경이 아닌 새로운 객체를 만들어 할당해주는 것. string 객체를 빈번하게 변경되는 경우 실행속도와 메모리 사용이 많아 질수 있다. C#은 string괴 비슷한 StringBulider클래스를 제공하는데 StringBulider는 가변 객체로 문자열이 변경되면 자동으로 필요한 메모리를 동적으로 조정하고 내용을 바꿀 수 있기 때문에 자주 변경되는 문자열을 다룰 떄는 StringBulider를 사용하자 테스트 코드

C#/C#예제 연습 2024.01.01

[GoF]24.템플릿 메서드 패턴(Template Method Pattern)

1.정의 -특정 연산을 단계별로 수행하는 행위를 기반 클래스에서 약속하고 단계별로 수행하는 구체적 구현은 파생 클래스에서 재정의하는 형태의 패턴. -프로그램 구현에 필요한 뼈대를 일반화하고 세부적인 기능을 재정의하여 설비 단계에서의 비용과 시간을 절감할 수 있다. 2.다이어그램 -EHApp클래스는 프로그램의 기반이 되는 클래스로 초기화,실행,종료, 상호작용를 기능을 약속한다. RUN 메서드는 사용자가 키를 누를 때 반응하여 기능을 실행시킨다. -MyApp클래스는 EHApp클래스를 상속받아 기능을 재정의한다. 3.구현 -EHApp구현 -MyApp구현 3.테스트

[GoF]23.전략 패턴(Strategy Pattern)

1.정의 -문제해결에 사용하는 여러 알고리즘을 객체화하여 사용할 때마다 알고리즘 객체를 바꿈으로써 문제해결에 있어 보다 나은 유연성을 제공할 수 있는 패턴. 2.다이어그램 -Picture클래스는 사진에 관한 속성을 가지고 있는 객체. -IView 인터페이스는 사진의 정보를 보여주는 View기능을 약속하여 파생 클래스에서 받은 실질적인 기능을 구 -.SimpleViewer,VerifyViewer 클래스 들은 IView 인터페이스에서 약속한 기능을 실질 구현한다. - PictureCollection 클래스 사진 객체들의 리스트를 가지고 IView들의 가지고 현재 Iview를 선택하여 사진의 속성을 보여준다. 3.구현 1.Picture클래스 2.IViewer 인터페이스 3.SimpleViewer,VerifyV..

[GoF]22.상태 패턴(State Pattern)

1.정의 -프로그래밍하다 보면 개체의 상태에 따라 구체적인 행위를 다르게 작성해야 하는 경우. 상태 패턴은 상태에 따라 동작을 다르게 해야 하는 부분을 분리하여 클래스로 정의하는 패턴. 2.다이어그램 -Iris 클래스는 조리개 기능 객체로 자신의 속성을 변화시키는 기능을 가진다. -Shutter클래스는 셔텨 기능 객체로 자신의 속성을 변화시키는 기능을 가진다. -IState는 기능 카메라 상태를 나타내는 클래스의 인터페이스로 기능을 약속한다. -OffState클래스와 Onstate 클래스는 IState인터페이스를 상속 받아 기능을 실질 구현한다. -Camera클래스는 모든 기능의 집약체이자 사용자와 소통하는 클래스이다. 3.구현 -Shutter 클래스 -Iris클래스 -IState인터페이스 -OnStat..

카테고리 없음 2023.12.14

[GoF]21.감시자 패턴(Observer Pattern)

1.정의 -하나의 객체가 여러 객체의 상태변화를 감지하게 하는 패턴. -특정 개체의 상태가 바뀌었을 때 반영해야 하는 개체가 여러 개 일 때 감시자 역할을 하는 객체를 두어 변화가 생길 때마다 알려주는 역할을 하게 한다. -감시자 객체가 주 개체에게 등록하는 것을 구독이라 하며 변화가 생길 때마다 알려주는 것을 게시라고 한다. 2.다이어 그램 -IUpdate인터페이스는 감시자 객체들의 기능을 약속하는 인터페이스. -SaturationViewer,BrightnessViewer,ToneViewer 클래스 감시자 객체들로 인터페이스의 기능을 실질적으로 구현한다. -Subject는 추상클래스로 감시자가 구독하는 하는 객체의 추상클래스로 감시자 객체들을 구독과 헤제하는 기능을 가지고 감시자 객체의 상태 변경을 통..

[GoF]20.메멘토 패턴(Memento Pattern)

1.정의 -메멘토 패턴은 객체의 상태 정보를 저장하고 사용자의 필요에 의하여 원하는 시점의 데이터를 복원 할 수 있는 패턴. 2.다이어그램 -Picture클래스는 메멘토 패턴에서의 원복 객체로 여러 속성 값을 가지고 변화키시는 메서드를 가진다. -SnapShot 클래스는 원본 객체의 값을 저장하는 Picture클래스의 정보를 저장한다. -App클래스는 사용자와 소통하는 인터페이스 객체이다. 3.구현 1)SnatShot 클래스 2)PIcuture클래스 3)App클래스 4)테스트

[GoF]19. 중재자 패턴(Mediator Pattern)

1.정의 -중재자 패턴은 프로그램의 상호작용을 해야 하는 개체들이 서로 복잡하게 관계를 맺고 있을 때 상호작용에 관한 행동을 별도의 형식으로 정의하여 중재하는 개체를 만드는 패턴. -복잡한 상호작용은 결합도가 강해지고 유연성이 떨어져서 재사용하기 힘들 경우가 발생 할 수 있다. -중재자 패턴를 통해 부분적으로만 결합도를 유지하여 유연성과 재사용성을 높인다. 2.다이어그램 -Camera 클래스는 사용자와 상호작용하는 객체로 입력값을 받아 기능을 작동시킨다. -IChange 인터페이스는 중재자 객체의 인터페이스로 기능을 약속한다. -InnerMediator클래스는 중재자 객체로 약속한 기능을 실질적으로 구현한다. -InnerModule 클래스는 내부 기능을 약속하는 추상클래스이다. -Iris클래스(조리개 기..

[GoF]18. 반복자 패턴(Iterator Pattern)

1.정의 접근기능과 자료구조를 분리시켜서 객체화하는 패턴. 컬렉션의 내부를 노출하지 않으면서 데이터를 순회하는 객체를 제공한다. 2.다이어 그램 -IContainer 인터페이스는 추상된 컬렉션으로 보관하는 메서드와 삭제, 전체 해제, 현재 보관된 수를 얻어오는 속성을 약속한다. -Arr클래스는 IContainer를 받아 기능을 실질적 구현한다. - IIterator인터페이스는 컬렉션 속성에 포함되어 컬렉션을 순회하기 전에 사용하는 메서드와 다음 위치로 변경하는 메서드, 현재 위치의 보관된 것을 얻어오는 속성을 약속한다. -ArrIterator클래스는 Iiterator를 받아 실질적 기능을 구현하고 Arr클래스의 내부에서 구현되어진다. -Tracer 클래스는 간단한 테스트 객체. 3.구현 1)IContai..