برای طراحی لایه های معماری و جدا کردن سطوح انتزاع از یک دیگر ،زمانیکه دارید کلاسی طراحی می کنید ،باید طوری طراحی بشه که کسی (برنامه /شخص دیگر) که قرار است از آن استفاده کند نیاز به دانستن جزئیات آن ندارد،مثلا شما از یک ماشین توقع دارید که حرکت کند بدون اینکه نیاز به دانستن چگونه عملکرد موتور آن داشته باشید
برای نیاز شما (البته من نمی دانم شما چه عملیاتی بر روی سوییچ انجام می دهید لذا یک مورد استفاده دیگر COM را مثال می زنم) فرض کنید شما می بایست برنامه ای بنویسید که قرار است یک Seven Segment را روشن کند
اگر شما بتوانید کلاسی بنویسید که مثلا با دادن عدد مثلا 8 بصورت String تمام سگمنت های Seven Segment را روشن کند شما دارای اینترفیس مناسببی برای کلاس خود هستید
اگر قراره این کلاس قسمتی از یک برنامه باشه فقط کافیه یک رشته را به اینترفیس کلاس بفرستد و آن عدد نمایش داده شود(در کلاس مربوطه باید ارتباط سخت افزاری برقرار شود ،عبارت ورودی پردازش شودو به بایتهای مناسب تبدیل شده و به سخت افزار فرستاده شود و احتمالا خطا در صورت وجود برگردد که همه این جزئیات از دید صدا زننده کلاس پنهان است)
موفق باشید