public ITake GetOutLens() { ITake re = Lens; Lens = null; return(re); }
private void TestUsingFactory() { Camera camera = null; ITake lens = null; foreach (IMakeCamera factory in factories) { camera = factory.MakeCamera(); lens = factory.MakeLens(); TestCase(camera, lens); } }
private void TestCase(Camera camera, ITake lens) { Console.WriteLine("호환성 테스트"); if (!camera.PutInlens(lens)) { Console.WriteLine("카메라에 렌트가 장착되지 않음"); } if (!camera.TakeAPicture()) { Console.WriteLine("사진이 찍히지 않음"); } }
public override bool PutInlens(ITake itake) { //as 연산자가 itake의 타입이 HoLens 인지 확인 후 다를경우 null 리턴 HoLens hoLens = itake as HoLens; if (hoLens == null) { return(false); } Lens = hoLens; return(true); }
public override bool PutInlens(ITake itake) { //as 연산자가 itake의 타입이 EvLens 인지 확인 후 다를경우 null 리턴 EvLens evLens = itake as EvLens; if (evLens == null) { return(false); } Lens = itake; return(true); }
/// <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); }
/// <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); }
public ICriteria Take(int val) { _take = new Take(val); return(this); }
/// <summary> /// 호환성 있는 렌즈를 장착하는 메서드 - 구체적 구현은 파생 클래스에서 /// </summary> /// <param name="itake">렌즈</param> /// <returns></returns> public abstract bool PutInLens(ITake itake);
public Camera() { Lens = null; }