제네릭 활용 , 커플링이란

김재섭·2022년 12월 13일
0

프로퍼티와 생성자에 제네릭 활용

어제는 클래스에 Generic을 사용해서 예시를 보였었다.
오늘은 Property와 생성자 차례다.

public class YesGeneric<T>
{
    private T example;
    public T Example
    {
        get
        {
            return example;
        }
        set
        {
            example = value;
        }
    }

    public YesGeneric(T value)
    {
        Example = value;
    }

    public void PrintExample()
    {
        Debug.Log(Example);
    }
}

어제 작성했던 코드 YesGeneric를 그대로 활용했다.

기존에 Public 변수였던 example을 private으로 바꿔주었다. 그리고 프로퍼티 Example 을 추가해주었다.

생성자를 이용해 처음 클래스를 선언할때 부터 값을 지정해주면, 다른 클래스에서 사용하고자 할때는 이렇게 사용할 수 있다.


public class Test : MonoBehaviour
{
    private void Awake()
    {
        YesGeneric<string> genericTestA = new YesGeneric<string>("막상 해보니 별거 없다.");
        genericTestA.PrintExample();
    }
}
-------------------------------
Log: 
막상 해보니 별거 없다.

핵심은 어제 내용이고, 그냥 이정도도 같이 활용할 수 있다~ 정도로 알면 될 듯 하다.

커플링(Coupling)이란

커플링 : 두 오브젝트가 잘 알고 지내고 하드하게 연결되어 있는 정도를 뜻한다.

좋은 코드는 커플링이 적은 코드이다.

A 와 B 사이에 커플링이 심하다는 말은 A 와 B 가 서로 엮여있는 정도가 높다는 말이다.
때문에 A 가 없어지면 B 의 코드를 수정하기가 쉽지 않다.

커플링을 줄이면 A 와 B 가 서로 모르는 사이가 되기 때문에 둘 중 하나가 없어져도 코드를 수정하기 수월해지거나 수정할 필요가 없게 된다.

너무 좋은 글이 있어서 잠시 복붙좀 하겠다..

너무 좋은 설명이다.
A클래스에 있는 이벤트에 B와 C에서 수정을 해줄 수 있지만, 실행은 오직 A클래스에서만 할 수 있다.
그렇게되면 B와C가 A와 연결된것은 오직 이벤트 연결뿐이다.

커플링이라는 말 자체에 큰 의미는 없는것같다. 위 예제만으로 이해가 돼버린다.
https://ansohxxn.github.io/
구글링할때 되게 자주보이는 분이다. 디자인도 예쁘고 볼때마다 참 글을 잘 정리해서 쓰신다.

.

.

.
오늘 회사에서 CTO님이 내 일을 도와주셨는데, 내가 정확히 어떤 문제에 부딪혔는지도 제대로 설명을 못했었다.

이게 애매하게 알고있어서 설명을 제대로 못하는건지,
그냥 내가 말을 조리있게 못하는건지, 둘 다 인건지 모르겠다.

책을 좀 읽어야겠다.

profile
Unity C#

0개의 댓글