객체지향에 관하여

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.
설계도에 해당되는 클래스(class),
그 설계도로 만들어낸 것을 객체(object) 또는 인스턴스(instance)라고 합니다.
안쪽 데이터를 감추고, 정해진 통로로만 다루게 하여 아무나 건드리지 못하게 합니다.
같은 객체 안에서는 응집도를 높이고 서로 다른 객체끼리는 낮은 결합도를 유지할 수 있도록 설계합니다.
공통된 부분을 한 곳에 두고, 차이만 따로 정의 하는 것입니다.
코드의 중복을 없애고, 확정성을 높입니다.
public class Job
{
public virtual void Attack()
{
Console.WriteLine("공격");
}
}
public class Knight : Job
{
public override void Attack()
{
Console.WriteLine("검 휘두르기");
}
}
같은 명령을 내려도 받는 쪽에 따라 다르게 동작 하는 것입니다.
public class Job
{
public virtual void Attack()
{
Console.WriteLine("공격");
}
}
public class Knight : Job
{
public override void Attack()
{
Console.WriteLine("검 휘두르기");
}
}
public class Magician : Job
{
public override void Attack()
{
Console.WriteLine("파이어볼");
}
}
비슷한 특징을 가진 변수, 데이터, 함수를 묶어 클래스로 정의내리는 것,
쓰는 쪽에 필요한 것만 드러내는 것입니다.
한 객체가 한가지 일만 맡는 것입니다.
기능을 늘리는 것은 열어 두고, 기존 코드를 고치는 것은 막습니다.
같은 자리에 들어갈 수 있다고 했으면 실제로 대신 쓸 수 있어야 합니다.
인터페이스를 각각 사용에 맞게 잘게 분리해야한다는 원칙입니다.
※ 주의) 한번 인터페이스를 분리하여 구성해놓고 나중에 무언가 수정사항이 생겨서 또 인터페이스들을 분리하는 행위 는 피해야 합니다.
참조해야할 Class에 직접 참조하는 것이 아닌, 그 대상의 상위요소(추상 클래스 or 인터페이스) 로 참조 하라는 원칙
