반응형

프로그래밍 기술 604

[C#] 1. 추상 팩토리 패턴 (Abstract Factory Pattern) - 설계(Design)

1. 추상 팩토리 패턴 (Abstract Factory Pattern) 1. 3 디자인 여기에서는 렌즈의 종류는 기종별로 하나의 렌즈만 제공하는 수준으로 디자인하려고 합니다. 여기에서 보여 드리고자 하는 프로그램에는 카메라, 렌즈, 특정 기종의 카메라와 렌즈를 생성하는 역할을 하는 팩토리, 테스터로 분류할 것입니다. 카메라와 렌즈, 팩토리는 Everyday에 관련된 것과 Holiday에 관련된 구체화 클래스와 일반화된 추상 클래스 구조로 만들어야겠지요. 여기에서 Everyday에 관련된 것들은 접두사 Ev를 사용하고 Holiday에 관련된 것들은 접두사 Ho를 사용할 것입니다. 카메라에는 렌즈를 장착 및 탈착하는 기능과 사진을 찍는 기능에 대해 약속합시다. 렌즈에는 상을 얻어오는 기능을 약속하겠습니다. ..

[C#] 1. 추상 팩토리 패턴 (Abstract Factory Pattern) - 개요, 시나리오

1. 추상 팩토리 패턴 (Abstract Factory Pattern) 1.1 개요 프로그래밍하다 보면 특정 목적에 따라 사용해야 하는 개체들이 서로 호환성이 있어야 하는 경우가 발생합니다. 목적에 따라 사용해야 하는 개체군들이 있을 때 특정 목적에 맞게 호환성 있는 개체가 무엇인지 조사하고 사용하기 위해서 비용이 발생할 수 있습니다. 이럴 때 추상 팩토리 패턴을 사용하면 효과적으로 비용을 줄일 수 있을 것입니다. 특히, 비슷한 작업을 위해 필요한 개체들 사이에 호환성을 유지해야 하는 여러 종류의 개체군이 있을 때 추상 팩토리 패턴을 사용하면 표준화된 방식에 의해 자신에게 맞는 개체군을 효과적으로 사용할 수 있게 해 줍니다. 이를 위해 추상 팩토리 패턴에서는 서로 호환성 있는 개체들을 생성하는 부분만 담..

[C#] 생성 패턴 개요 (추상 팩토리 패턴, 빌더 패턴, 팩토리 메서드 패턴, 원형 패턴, 단일체 패턴)

1부 생성 패턴들 1. 추상 팩토리 패턴(Abstract Factory Pattern) 호환성 있는 개체군을 하나의 팩토리 개체를 통해 생성하게 함으로써 사용자 편의성을 증대시킬 수 있다. 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 1. 추상 팩토리 패턴 (Abstract Factory Pattern) - 개요, 시나리오2. 빌더 패턴(Builder Pattern) 개체를 생성하는 과정이 복잡하면 생성하는 알고리즘을 빌더에 구현하여 빌더 개체를 통해 복잡한 개체 생성을 쉽게 사용할 수 있다. 2016/04/25 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 2. 빌더 패턴(Builder Pattern) - 개요, 시나리오 3..

[ADO.NET] SqlDataAdapter

SqlDataAdapter SqlDataAdapter는 SQL 데이터 소스와 DataSet 간의 연결에 사용합니다. Fill 메서드를 이용하여 데이터 소스의 데이터를 얻어와 DataSet을 채우고 Update 메서드를 이용하여 DataSet의 데이터로 데이터 소스의 데이터를 일치시키게 합니다. SqlDataDataper에 검색, 추가, 변경, 삭제에 사용할 SqlCommand를 초기에 설정한 후에 데이터 소스의 데이터를 Fill 메서드를 이용해 DataSet을 채우고 이 후에 작업은 DataSet으로 데이터를 관리하다가 데이터 소스를 변경할 필요가 있을 때 Update 메서드를 이용하여 데이터 소스에 반영시키는 것이 일반적인 사용입니다. ▷클래스 상속 계층System.Object System.Marsha..

[ADO.NET] DataView 클래스를 사용 예 - 도서 관리 프로그램

DataView 사용 예 이번에는 DataView 개체를 사용하는 간단한 예를 살펴볼게요. 여기에서는 Books 테이블에서 특정 저자가 쓴 책들을 ISBN 순으로 정렬한 DataView 개체를 생성한 후에 새로운 DataRowView 개체를 생성하여 추가하고 기존에 있던 데이터를 변경하는 예제입니다. 먼저 Books 테이블에서 저자가 홍길동인 책들을 ISBN 순으로 정렬한 DataView 개체를 생성합니다.DataView dv = new DataView(dt, "Author='홍길동'", "ISBN", DataViewRowState.CurrentRows); 그리고 DataView 개체에 있는 정보를 출력해 보면 Books 테이블에 있는 데이터 중에 저자가 홍길동인 책들만 ISBN 순으로 출력됨을 확인할 ..

[ADO.NET] DataView

DataView ADO.NET 기술에서는 DataTable의 사용자 지정 뷰인 DataView 클래스를 제공합니다. DataTable에 있는 내용을 정렬하거나 탐색 및 필터링을 하기 위해 DataView 개체를 이용합니다. DataView 개체는 데이터를 저장하지 않으면 DataView 개체와 의존 관계에 있는 DataTable 개체의 뷰를 나타냅니다. DataView에서는 원본 DataTable의 데이터에 관한 서로 다른 뷰를 동적으로 제공합니다. 따라서 뷰와 관련없는 다른 테이블에 영향을 받지 않고 DataView에 없는 데이터를 사용자로부터 보호할 수 있습니다. 실제 윈도우즈 응용 프로그램이 웹 프로그래밍에서 데이터 바인딩 컨트롤을 사용할 때 DataView 개체를 많이 이용합니다. ▷클래스 상속 ..

[ADO.NET] DataSet과 XML을 이용한 출판사 별 도서 관리 프로그램 만들기

DataSet DataSet은 ADO.NET 핵심 구성 요소로 프로그램 내의 논리적 DB로 데이터 집합과 관계로 구성합니다. DataTable은 메모리 상의 하나의 테이블을 표현하는 개체이고 DataSet은 메모리 상의 DB를 표현하는 개체입니다. 따라서 DataSet은 여러 개의 테이블과 관계들의 집합체라고 볼 수 있습니다. DataSet 개체를 구성할 DataTable 개체들은 Tables 컬렉션에 보관하고 관계는 Relations 컬렉션에 보관합니다. DataSet 개체도 DataTable 처럼 스키마와 데이터를 저장하거나 읽어와서 구성하는 메서드를 제공합니다. DataSet 클래스에는 DataSet 개체를 생성할 때 사용하는 생성자를 제공합니다.public DataSet ( );public Dat..

[ADO.NET] DataTable 클래스와 XML을 이용한 도서 관리 프로그램 만들기

DataTable 클래스와 XML을 이용한 도서 관리 프로그램 만들기 DataTable 클래스에서는 메모리 상의 테이블입니다. ADO.NET 에서는 논리적 DB를 XML 형태로 저장하고 로딩할 수 있게 기술을 지원하고 있습니다. DataTable 클래스에도 WriteXml, WriteXmlSchema, LoadXml, LoadXmlSchema 메서드를 제공하여 메모리 상의 테이블 구조와 내용을 XML 형태로 저장하고 로딩할 수 있습니다. public void WriteXml(Stream stream);public void WriteXml(string filename);;public void WriteXml(TextWriter writer);public void WriteXml(XmlWriter write..

[ADO.NET] DataTable 개체에 행 추가

DataTable 개체에 행 추가 이번에는 DataTable 개체에 행을 추가하는 방법을 알아봅시다. DataTable 클래스에는 Rows 컬렉션 속성을 제공하고 있으며 추가한 Row 개체를 보관하는 컬렉션입니다. 따라서 DataTable 개체에 행을 추가할 때는 Row 클래스를 이용합니다. 그런데, Row 개체는 DataTable 개체에 설계한 구조에 맞아야 하기 때문에 직접 생성할 수 없고 DataTable 개체의 NewRow 메서드를 이용하여 설계한 구조에 맞는 Row 개체를 생성합니다.DataRow dr = dt.NewRow(); 그리고 DataRow 개체에 열마다 원하는 값을 지정합니다.dr["ISBN"] = isbn;dr["Title"] = title;dr["Author"] = author;d..

[ADO.NET] DataTable 클래스 개체 생성과 테이블 구조 설계

DataTable ADO.NET에서는 논리적인 데이터 집합을 디자인하고 데이터를 관리할 수 있는 DataTable 클래스를 제공하고 있습니다. DataTable은 DataSet을 구성하는 주요 개체로 프로그램 메모리 상의 한 개의 테이블입니다. 여기에서는 DataTable 개체를 생성하여 테이블을 설계하고 해당 개체를 이용하여 데이터를 관리하는 방법을 살펴볼게요. ▷클래스 상속 계층System.Object System.ComponentModel.MarshalByValueComponent System.Data.DataTable DataTable 개체 생성과 테이블 구조 설계 DataTable은 개체를 생성한 후에 테이블의 구조를 설계한 후에 사용합니다. 테이블의 구조를 설계한다는 것은 열을 추가하는 것과 ..

반응형