객체지향(12)
-
C# 람다 식 Lambda
람다 시은 무명 메서드를 표현하는데 사용되며, => 연산자 오른쪽에 본문을 표시하여 간단히 표현할 수 있다. 람다 식을 이용하면 delegate와 무명 메서드도 간략히 표현할 수 있다. 식 람다 delegate int calculate(int a, int b); calculate cal = (a, b) => a + b; Console.WriteLine(cal(10, 20)); 먼저 delegate를 통해 대리자를 선언 한 뒤, 람다식을 참조시킨다. 람다식으로 구현된 무명 메서드는 일반 메서드처럼 매개변수를 넘겨 대리자를 호출한다. 문 람다 delegate int calculate(int a, int b); calculate cal2 = (a, b) => { int sum = a + b; Console.W..
2021.01.27 -
C# Generic
Generic c#에서는 Generic이라는 타입을 사용할 수 있는데, Generic 타입은 int/double과 같은 데이터 타입을 정하지 않고 타입 자체를 파라미터로 받아들이도록 정의할 수 있다. 또한 변수 뿐만아니라 메서드, 클래스, 인터페이스 등에서도 사용할 수 있다. class GenericStack { T[] _objlist; int position = 0; public GenericStack(int size) { _objlist = new T[size]; } public void Push(T newvalue) { _objlist[position++] = newvalue; } public T Pop() { return _objlist[position--]; } } 해당 클래스는 stack 자료..
2021.01.27 -
C# 추상클래스와 인터페이스
추상 클래스 추상 클래스는 미완성된 클래스를 말하며, 추상 메서드나 추상 프로퍼티를 포함한다. 이 클래스 내에는 직접적인 구현을 하지 않으며, 오직 자식 클래스에서 상속을 통해서만 구현한다. public abstract class abstractclass { public string name; public int id { get; set; } public abstract void show(); // 추상 메서드 } public class normalclass : abstractclass { public override void show() { Console.WriteLine("."); } } abstractclass 에서는 추상클래스 이므로 메서드를 구현하지 못하고, 상속받은 자식 클래스에서 구현한다. ..
2021.01.26 -
6. 객체지향 설계 과정
객체지향 설계 개념과 원리 객체와 클래스 클래스는 유사한 객체들의 모임으로, 각 객체는 특정 속성이 모임이다. 비슷한 객체를 묶어 종류의 속성 제약조건 및 동작의 유형을 공유한다. 캡슐화 각자 클래스들이 독립성을 가지고 기능을 수행할 수 있도록 감싸는 것을 캡슐화라 하며, 종속성을 줄일 수 있다. 상속 유사한 클래스를 정의 내리거나, 하위 개념을 정의할 때 만들어진 클래스를 상속할 수 있다. 클래스의 정의를 단순화시킬 수 있고 새로운 클래스를 쉽게 정의할 수 있다. 다형성 동일한 이름의 오퍼레이션이 다양한 작업을 하는 것을 말하며, 상위 클래스에서 정의된 메서드를 하위 클래스에서 재정의하는 오버라이딩, 이름은 같지만 매개변수를 달리하여 재정의하는 오버로딩 등이 있다. 정적 모델링과 동적 모델링 정적 모델..
2021.01.21 -
4-1, 4-2 소프트웨어 설계 원리/응집도와 결합도
소프트웨어 설계 원리 분할 소프트웨어 설계 단계에서 요구사항을 분할하여 최대한 덜 복잡하게 만들어야 하며, 이를 통해 얻어진 결과는 독립성을 고려하여 재조합되어야 한다. 분할한 시스템 구성요소를 서브시스템이라 부르며, 시스템 설계자는 명확히 서브시스템을 나누어야 한다. 추상화 추상화는 흐름을 지키며 큰 그림을 그리는 과정이며, 세부적인 항목은 생략한다. 컴포넌트의 구현 방법은 생략하고 상호 작용에 중심을 두어 표현한다. 정보 은닉 각 모듈의 내부 내용을 감추고 인터페이스를 통해서만 메시지를 전달하자는 개념이다. 이러는 이유는 하부 시스템이 다른 모듈에 영향을 끼치거나, 독립성에 방해를 하기 때문이다. 단계적 정제 단계적 정제는 구조가 내려가며 구체화된다. 정제 과정에서 추상화 수준이 낮아지며 점점 세부적..
2021.01.18 -
3-3, 3-4, 3-5 구조적 분석 기법/객체지향 분석/요구사항 명세화
구조적 분석 기법 구조적 분석 기법은 기능 관점에서 처리 위주로 모델링하는 대표적인 방법이다. 자료 흐름도 (Data Flow Diagram) 외부 객체 : 시스템 외부에서 시스템과 정보를 주고받는 사용자 등 외부 객체 프로세스 : 시스템 안에서 정보를 처리하고 변환시킨다. 데이터 항목 : 프로세스 사이의 정보 흐름을 표시한다. 자료 저장소 : 저장소로 주로 데이터베이스를 표현한다. 소단위 명세 소단위 명세서는 분할이 완료된 자료 흐름도의 프로세스가 어떤 기능을 수행하는지 기술하는 것이다. 더 이상 쪼개지지 않는 최하위 프로세스를 설명한다. 자료 사전 자료 사전은 자료 흐름도에 나타난 데이터 정보를 모아놓음으로써 개발자나 사용자들이 편리하게 사용할 수 있도록 한다. 객체지향 분석 객체지향은 주어진 문제를..
2021.01.14