같은 interface(규격) 상속받은 클래스들의 부품연결(DI) 호환
작성일 21-03-20 21:50
페이지 정보
작성자sbLAB 조회 3,738회 댓글 0건본문
using System; namespace ConsoleApp1 { //모니터 제조스펙 인터페이스 public interface IMonitorMaker { public MonitorModel MakeProduct(); } //모니터 제조스펙 데이타모델 public class MonitorModel { public string Name { get; set; } public int Size { get; set; } } //삼성모니터 주문스펙 public class SamsungMonitor : IMonitorMaker { public MonitorModel MakeProduct() { return new MonitorModel() { Name = "Samtron", Size = 24 }; } } //LG모니터 주문스펙 public class LgMonitor : IMonitorMaker { public MonitorModel MakeProduct() { return new MonitorModel() { Name = "UltraLG", Size = 32 }; } } //DELL 모니터 주문스펙 public class DellMonitor : IMonitorMaker { public MonitorModel MakeProduct() { return new MonitorModel() { Name = "DellSync", Size = 27 }; } } //쇼핑몰주문사이트 public class ShoppingSite { public MonitorModel OrderMonitor(IMonitorMaker monitorMaker) { return monitorMaker.MakeProduct(); } } class Program { static void Main(string[] args) { ShoppingSite shoppingSite = new ShoppingSite(); MonitorModel myMonitorModel; // LgMonitor(), SamsungMonitor(), DellMonitor() 모두 // 같은 애비 interface 를 따르는 식솔이므로 서로다른 각 제조사별 주문스펙 인스턴스를 투입(부품연결) 가능. myMonitorModel = shoppingSite.OrderMonitor(new LgMonitor()); Console.WriteLine(myMonitorModel.Name + " ------- " + myMonitorModel.Size); myMonitorModel = shoppingSite.OrderMonitor(new SamsungMonitor()); Console.WriteLine(myMonitorModel.Name + " ------- " + myMonitorModel.Size); myMonitorModel = shoppingSite.OrderMonitor(new DellMonitor()); Console.WriteLine(myMonitorModel.Name + " ------- " + myMonitorModel.Size); } } }
[이 게시물은 sbLAB님에 의해 2022-12-22 09:42:42 Web/PHP/API에서 이동 됨]
댓글목록
등록된 댓글이 없습니다.