Information Expert
Expert
Expert Principle
سوال: اصل اساسی ای که بر اساس آن می توان مسیولیت ها را به اشیا اختصاص داد چیست؟
جواب: هر که بامش بیش، برفش بیشتر! به همین راحتی. مسیولیت را به کلاسی که بیشتریناطلاعات لازم برای انجام آن را دارد محول کنید.
این اصل عنوان میکند که ، برای واگذاری مسیولیت ها، به یک مسیولیت معین نگاه کنید، اطلاعات مورد نیاز برای انجام آن رو تعیین کنید و سپس تعیین کنید که آن اطلعات در کجا ذخیر همیشود.
این امر منجر به این میشود که مسیولیت، به کلاسی سپرده شود که بیشترین اطلاعات مورد نیاز برای انجام آن را دارد.
مثال:
بیایید برنامه Point of Sale (POS) را در نظر بگیریم:
مروری کوتاه بر برنامه POS.
بیان مشکل: چه کسی مسئول دانستن مجموع کل فروش است؟
توسط Information Expert، ما باید به دنبال آن دسته از اشیا باشیم که اطلاعات مورد نیاز برای تعیین مجموع کل را دارند. در نتیجه کلاس Sale حاوی تمام اطلاعات مورد نیاز برای این کار است.
public class Sale { //... public double getTotal(){ double total = 0; for (SalesLineItem s : salesLineItem) { ProductSpecification prodspec = s.getProductSpecification(); total += s.getQuantity()*prodspec.getPrice(); } return total; } }
public class SalesLineItem { //... public double getSubTotal(){ return this.getQuantity() productSpecification.getPrice(); } }
فواید:
برای مطالعه ی ادامه مطالب به لینک مراجعه کنید.