من عاشق کدم شدم، سپس مجبور شدم آن را بکشم

من فقط صدها خط کدی را که دیروز نوشتم حذف کردم و 32 خط کد جدید را جایگزین آنها کردم. این برای ویژگی TheOpenPresenter بود که برای نشان دادن اینکه آیا صدا در حال پخش است یا خیر.

هر چند وقت یکبار، من روی عملکردی کار می کنم که اجرای آن کاملاً ساده به نظر می رسد. در این مورد، من فقط باید این نماد را هنگام پخش صدا نشان دهم.

نشانه پخش صدانشانه پخش صدا

به اندازه کافی ساده هر یک از اینها یک صحنه حاوی چندین پلاگین است. هر افزونه دارای ویژگی های خاص خود است isPlaying . ما می توانیم مقادیر را بین افزونه ها ادغام کنیم و اگر پرچم درست باشد، می توانیم نماد را نشان دهیم.

معماری یک راه حل

مسئله اصلی نحوه دسترسی به این داده ها است. ببینید، ما می‌توانیم مستقیماً به داده‌ها دسترسی داشته باشیم. اما هر افزونه می تواند شمای خاص خود را داشته باشد. در حالی که برخی از افزونه ها ممکن است ساده باشند در حال پخش است اموال، برخی دیگر ممکن است برای نشان دادن وضعیت بازی خود به چیز پیچیده تری نیاز داشته باشند.

ساده است.

این همان الگویی است که TheOpenPresenter برای بسیاری از افزونه های خود استفاده می کند. و در حالی که ما در آن هستیم، می توانیم آن را به یک انتزاع کنیم وضعیت صحنه شی بنابراین اگر زمانی به حالت دیگری نیاز داشتیم، می‌توانیم آن را در اینجا اضافه کنیم. در اینجا ممکن است برای این افزونه به نظر برسد:

// The pattern we use for plugins
serverPluginApi.onPluginDataCreated(pluginName,...

Source link