LifetimeScope

๊ฐœ๋…

  • VContainer ํŠน์œ ์˜ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

  • 1ํ™”๋ฉด์— ๋Œ€ํ•ด ํ•˜๋‚˜๋งŒ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ์™ธ ์—†์Œ)

์šฉ๋„

  • ํ™”๋ฉด์•ˆ์—์„œ์˜ ํด๋ž˜์Šค ์˜์กด๊ด€๊ณ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • View๋ฅผ Presenter(Lifecycle)์— ๊ฑด๋‚ด์ค๋‹ˆ๋‹ค.

๊ตฌํ˜„๋ฐฉ๋ฒ•

  • LifetimeScope ํ˜น์€, LifetimeScopeWithParameter๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • SerializeField ๋ฅผ ํ†ตํ•ด pageView๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ํ†ต์‹ ๋“ฑ์˜ Mock ์ •๋ณด๋˜ํ•œ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์ฝ”๋“œ

public class TestLifetimeScope : LifetimeScope
{
    [SerializeField] private TestView _view;

    protected override void Configure(IContainerBuilder builder)
    {
        base.Configure(builder);
        builder.RegisterComponent(_view); // View ๋“ฑ๋ก
        builder.Register<TestPageLifecycle>(Lifetime.Singleton);  // ํ™”๋ฉด๋ณ„ Lifecycle ๋“ฑ๋ก
        builder.Register<TestUseCase>(Lifetime.Singleton); // ํ†ต์‹ ์˜ UseCase ๋“ฑ๋ก
        AddMockInDebug(builder);  // ํ†ต์‹  Mock ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฝ์ž…
    }
}

Last updated