본문 바로가기

전체 글27

[Design Pattern] 어댑터(Adapter) 패턴에 대해 오늘은 디자인 패턴 중 하나인 어댑터 패턴에 대해 알아보자! 어댑터 패턴이란? 어댑터 패턴은 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환한다. 즉, 어댑터를 이용하면 인터페이스 호환성 문제로 같이 쓸 수 없는 클래스들을 연결해서 사용할 수 있다. 어댑터 패턴이 왜 필요할까? 어댑터 디자인 패턴을 사용하는 경우 서로 호환되지 않는 인터페이스를 사용하는 클라이언트를 그대로 활용할 수 있다. 인터페이스를 변환해주는 어댑터만 만들면 되기 때문이다! 이를 통해 클라이언트와 구현된 인터페이스를 분리할 수 있고, 나중에 인터페이스가 바뀌더라도 변경 내역이 어댑터에 캡슐화되기 때문에 클라이언트는 바뀔 필요가 없어진다. 언제 사용할 수 있을까? - 기존 클래스를 사용하고 싶은데 인터페이.. 2023. 10. 30.
[Android] include, merge 태그에 대해 오늘은 레이아웃을 좀 더 효과적으로 그릴 수 있는 태그인 include, merge에 대해 알아보겠다! include 재사용하고 싶은 컴포넌트를 레이아웃에 넣을 때 include 태그를 사용한다. 예를 들어서 상단바와 같이 재사용하는 컴포넌트를 적용할 때 유용하다. 상단바를 include 태그를 사용해서 적용하는 예제를 작성해 보자! include_top_bar.xml 위와 같이 actionBarSize 높이에 textView 1개를 가진 레이아웃을 그렸습니다. 이걸 activity_main.xml에 include 해보겠다. activity_main.xml ~ 태그를 사용해 간단히 컴포넌트를 추가해 줄 수 있다! merge merge는 include 태그와 함께 쓰이며 더미뷰를 생성해 준다. includ.. 2023. 10. 26.
[Design Pattern] 팩토리(Factory) 패턴에 대해 오늘은 디자인 패턴 중 생성 패턴의 팩토리 패턴에 대해 알아보자! 이 팩토리 패턴은 조금 더 구체적인 용어인 팩토리 메서드 패턴으로도 널리 알려져 있다. 팩토리 패턴이란? 팩토리 패턴은 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴이다. 다시 말해 여러 개의 서브 클래스를 가진 슈퍼 클래스가 있을 때 인풋에 따라 하나의 자식 클래스의 인스턴스를 리턴해주는 방식이다. 팩토리 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미룬다. 이 패턴은 인스턴스화에 대한 책임을 객체를 사용하는 클라이언트에서 팩토리 클래스로 가져온다. 활용성 - 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 - 생성할 객체를 기술하는 책임.. 2023. 10. 25.
[Design Pattern] 빌더(Builder) 패턴에 대해 오늘은 디자인 패턴 중 생성 패턴의 빌더 패턴에 대해 알아보자! 빌더 패턴이란? 빌더 패턴은 객체 생성 과정을 분리하여 복잡한 객체를 조립할 수 있게 하는 패턴이다. 생성자와 수정자로 구현된 다음과 같은 Autor 클래스를 바탕으로 왜 생성자나 수정자보다 빌더를 써야 하는지 이해해 보자! @NOArgsConstructor @AllArgsConstructor public class Autor { private String name; private String job; private int age; } 빌더 패턴의 장점 1. 필요한 데이터만 설정할 수 있다. 2. 유연성을 확보할 수 있다. 3. 가독성을 높일 수 있다. 4. 변경 가능성을 최소화할 수 있다. 1. 필요한 데이터만 설정할 수 있다. 예를 들어.. 2023. 10. 24.