Builder

๊ฐœ๋…

  • BuilderBase๋Š” ScreenSystem์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋กœ, DI Container์™€ ์—ฐ๋™ํ•˜์—ฌ ํ™”๋ฉด์„ ์ƒ์„ฑํ•˜๊ณ  Page์™€ Modal์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์Œ ํ™”๋ฉด์—์„œ ์‚ฌ์šฉํ•  ์š”์†Œ๋Š” Parameter๋กœ ์ •์˜ํ•˜์—ฌ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ๋ฅผ ๋“ค์–ด ์ธ๋ฒคํ† ๋ฆฌ์—์„œ ์•„์ดํ…œ์„ ๋ˆŒ๋Ÿฌ ์ƒ์„ธ ์•„์ดํ…œ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๋Š” UI๋ผ๊ณ  ํ•œ๋‹ค๋ฉด,

    • ์„ ํƒํ•œ ์•„์ดํ…œ์˜ ID๋ฅผ ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Sign In Modal ์—์„œ์˜ ์˜ˆ์‹œ ์ฝ”๋“œ

public class SignInModalBuilder : ModalBuilderBase<SignInModalLifecycle, SignInModalView>
{
    public SignInModalBuilder(bool playAnimation) : base(playAnimation)
    {
    }
}

๋งŒ์•ฝ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ™”๋ฉด ํ˜ธ์ถœ์‹œ์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

  • ModalBuilderBase, PageBuilderBase ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋Š” ๋ฒ„์ „๊ณผ ์—†๋Š” ๋ฒ„์ „ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

namespace ScreenSystem.Modal
{
    public abstract class ModalBuilderBase<TModal, TModalView, TParameter> : ModalBuilderBase<TModal, TModalView>
        where TModal : IModal
        where TModalView : ModalViewBase
    {
        public ModalBuilderBase(TParameter parameter, bool playAnimation = true, string overridePrefabName = null);
โ€‹
        protected override void SetUpParameter(LifetimeScope lifetimeScope);
โ€‹
        public async UniTask<IModal> Build(ModalContainer modalContainer, LifetimeScope parent, CancellationToken cancellationToken);
    }
โ€‹
    public abstract class ModalBuilderBase<TModal, TModalView> : IModalBuilder
        where TModal : IModal
        where TModalView : ModalViewBase
    {
        public ModalBuilderBase(bool playAnimation = true, string overridePrefabName = null);
    }
}

๋งŒ์•ฝ, ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” BuilderBase๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ™”๋ฉด์˜ LifetimeScope ์—ญ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›๋Š” LifetimeScopeWithParameter<T> ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด, Builder์ธก์—์„œ ํ™”๋ฉด์„ ์ƒ์„ฑํ• ๋•Œ ์ž๋™์œผ๋กœ LifetimeScope ์ชฝ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด ์ค๋‹ˆ๋‹ค.

Last updated