برنامه نویسی جنبه گرا (AOP) یک رویکرد قوی برای کپسوله کردن نگرانی های مقطعی در اجزای قابل استفاده مجدد به نام جنبه ها ارائه می دهد. با جدا کردن این نگرانی ها از منطق تجاری، AOP به ساده سازی توسعه، کاهش کد دیگ بخار و افزایش قابلیت نگهداری کمک می کند. در این مقاله، سه جنبه عملی را که تقریباً برای همه پروژههایم استفاده میکنم، بررسی میکنم: Notify، Log، و Bindable، که نشان میدهد چگونه وظایف برنامهنویسی رایج را ساده میکنند و کیفیت کد را بهبود میبخشند.
همه مثالها با استفاده از Aspect Injector پیادهسازی میشوند، اما همان منطق را میتوان با سایر چارچوبهای AOP تطبیق داد. این رویکرد به هیچ کتابخانه خاصی گره خورده نیست و می تواند به راحتی متناسب با نیازهای پروژه شما سفارشی شود.
خودکار کردن اعلانهای تغییر ویژگی با جنبه Notify
هنگام کار با الگوی MVVM (و نه تنها)، نیاز مکرر به ردیابی تغییرات در ویژگی ها وجود دارد. برای رسیدن به این هدف، کلاس مدلی که می خواهیم تغییرات ویژگی را برای آن ردیابی کنیم، باید آن را پیاده سازی کند INotifyPropertyChanged
رابط. سپس هر خاصیت باید صریحاً مورد را فراخوانی کند PropertyChangedEventHandler
هنگام اصلاح:
public class Model : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged = delegate { };
private string m_text;
public string Text
{
...