Beispiel #1
0
        public ITake GetOutLens()
        {
            ITake re = Lens;

            Lens = null;

            return(re);
        }
Beispiel #2
0
        private void TestUsingFactory()
        {
            Camera camera = null;
            ITake  lens   = null;

            foreach (IMakeCamera factory in factories)
            {
                camera = factory.MakeCamera();
                lens   = factory.MakeLens();
                TestCase(camera, lens);
            }
        }
Beispiel #3
0
 private void TestCase(Camera camera, ITake lens)
 {
     Console.WriteLine("호환성 테스트");
     if (!camera.PutInlens(lens))
     {
         Console.WriteLine("카메라에 렌트가 장착되지 않음");
     }
     if (!camera.TakeAPicture())
     {
         Console.WriteLine("사진이 찍히지 않음");
     }
 }
Beispiel #4
0
        public override bool PutInlens(ITake itake)
        {
            //as 연산자가 itake의 타입이 HoLens 인지 확인 후 다를경우 null 리턴
            HoLens hoLens = itake as HoLens;

            if (hoLens == null)
            {
                return(false);
            }
            Lens = hoLens;
            return(true);
        }
Beispiel #5
0
        public override bool PutInlens(ITake itake)
        {
            //as 연산자가 itake의 타입이 EvLens 인지 확인 후 다를경우 null 리턴
            EvLens evLens = itake as EvLens;

            if (evLens == null)
            {
                return(false);
            }
            Lens = itake;
            return(true);
        }
Beispiel #6
0
        /// <summary>
        /// 카메라와 렌즈의 호환성 테스트
        /// </summary>
        /// <param name="camera">카메라</param>
        /// <param name="lens">렌즈</param>
        private void TestCase(Camera camera, ITake lens)
        {
            Console.WriteLine("테스트");

            if (camera.PutInLens(lens) == false)
            {
                Console.WriteLine("카메라에 렌즈가 장착 되지 않음");
            }

            if (camera.TakeAPicture() == false)
            {
                Console.WriteLine("사진이 찍히지 않았습니다");
            }
        }
        /// <summary>
        /// 호환성 있는 렌즈를 장착하는 기능에 대한 구체적 구현
        /// </summary>
        /// <param name="itake">렌즈</param>
        /// <returns>장착 여부</returns>
        public override bool PutInLens(ITake itake)
        {
            // 호환성 있는 Ho렌즈 형식으로 참조연산
            HoLens holens = itake as HoLens;

            // 호환성 없을 때
            if (holens == null)
            {
                return(false);
            }

            // 호환성 있는 렌즈일때 장착
            Lens = itake;

            return(true);
        }
Beispiel #8
0
        /// <summary>
        /// 호환성 있는 렌즈를 장착하는 기능에 대한 구체적 구현
        /// </summary>
        /// <param name="itake">렌즈</param>
        /// <returns>장착 여부</returns>
        public override bool PutInLens(ITake itake)
        {
            // 호환성 있는 Ev 렌즈 형식으로 참조 연산
            EvLens evlens = itake as EvLens;

            // 호환성 없는 렌즈일 때
            if (evlens == null)
            {
                return(false);
            }

            // 호환성 있는 렌즈일 때 장착
            Lens = itake;

            return(true);
        }
Beispiel #9
0
 public ICriteria Take(int val)
 {
     _take = new Take(val);
     return(this);
 }
Beispiel #10
0
 /// <summary>
 /// 호환성 있는 렌즈를 장착하는 메서드 - 구체적 구현은 파생 클래스에서
 /// </summary>
 /// <param name="itake">렌즈</param>
 /// <returns></returns>
 public abstract bool PutInLens(ITake itake);
Beispiel #11
0
 public Camera()
 {
     Lens = null;
 }