맨체스터 사는 개발자

객체지향 관련 영어 인터뷰 질문 및 답변 본문

개발/C++

객체지향 관련 영어 인터뷰 질문 및 답변

aaamy91 2021. 6. 11. 07:20

뭘 쓸까 고민하다가 영국에서 개발자 면접 때 준비했던 객체지향 관련 질문과 답변을 적어볼까 합니다.

객체지향 관련된 내용은 한국어로 해도 어려운데 영어는 더 어려워서 검색을 여러번 한 후에 적당한 답변들을 섞어서 한줄로 만들었습니다.

Object Oriented design

Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem.

Why OOP?

1. reuse, reuse enables faster development

2. easier to maintain

단점은

1. slower processing

4 basics of OOP

Abstraction

- means a concept or an Idea, express the intent of the class rather than the actual implementation

Encapsulation

- the mechanism of hiding of data implementation by restricting access to public methods

Inheritance

- expresses “is-a” and/or “has-a” relationship between two objects. Using Inheritance, In derived classes we can reuse the code of existing super classes

Polymorphism

- Polymorphism is the ability of an object to take on many forms.

- A real-life example of polymorphism, a person at the same time can have different characteristics. Like a man at the same time is a father, a husband, an employee.

5 OOP principles

S – Single Responsibility Principle (SRP) : 단일 책임 원칙

- A class should only have a single responsibility

- 객체는 오직 하나의 책임을 가져야 한다.(객체는 오직 하나의 변경의 이유만을 가져야 한다.)

O – Open Closed Principle (OCP) : 개방-폐쇄 원칙

- Software entities … should be open for extension, but closed for modification.

- 객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다.

L – Liskov Substitution Principle (LSP) : 리스코프 치환 원칙

- objects in a program should be replaceable with instances of their subtypes without altering

- 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙

I – Interface Segregation Principle (ISP) : 인터페이스 분리 원칙

- Many client-specific interfaces are better than one general-purpose interface.

- 클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안된다.

D – Dependency Inversion Principle (DIP) : 의존성 역전 원칙

- depend upon abstractions, [not] concretions.

- 추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안된다.

class vs object

- An instance of a class is known as Object.

- A template or blueprint with which objects are created is known as Class.