تفویض اختیار

 

کپی سرگرم کننده (foo: String = this.foo، boo: Int = this.boo)

به ما اجازه می دهد تنها برخی از پارامترهای جدید را با استفاده از پارامترهای قدیمی به عنوان پیش فرض عبور دهیم. این نیز یک جایگزین عالی برای الگوهایی مانند Builder است که اشیاء جدیدی را ایجاد می کند و به ویژگی های پیش فرض یا اختیاری اجازه می دهد.

 

تفویض اختیار

تفویض اختیار بر سر ارث. من معتقدم که این یکی از مهمترین و مفیدترین قوانین در مورد برنامه نویسی شی گرا است. نمایندگی نشان داد که یک الگوی بسیار تمیزتر و انعطاف پذیرتر برای به اشتراک گذاشتن کد پیاده سازی نسبت به وراثت ساده است. کوتلین به آن اجازه می دهد تا شیء پیاده سازی را مشخص کند ، که در توابع پیاده سازی خودکار استفاده می شود.

 

رابط MyInterface {

    سرگرم کننده doStuff ()

}

 

کلاس CoolMyInterface: MyInterface {

    سرگرم کننده doStuff () {

        //چیزهای جالب

    }

}

 

کلاس MyDerivedClass: MyInterface (impl: MyInterface): MyInterface by impl

 

myDerived.doStuff () //

 

فقط کارهای جالب انجام می دهد ، بدون دیگ بخار.

در این مثال ، کلاس MyDerivedClass MyInterface را پیاده سازی می کند. معمولاً ، شما باید تمام توابع تعریف شده در MyInterface را پیاده سازی کنید ، سپس در داخل آنها ، اجرا را به یک شیء که در واقع آنها را پیاده می کند ، بویلرهای زیادی واگذار کنید.

 

همانطور که احتمالاً از نمونه های قبلی می دانید ، کامپایلر Kotlin بسیار مشتاق است که این بار را از بین ببرد. این به طور خودکار توابع پیاده سازی شده را تولید می کند ، که به توابع مربوطه شیء مشخص شده توسط بند ارسال می شود.

 

توابع افزونه

گاهی اوقات لازم است توانایی بیشتری به کلاس اضافه شود. بسط دادن معمولاً تمیزترین روش برای انجام این کار نیست ، پاک ترین رویکرد استفاده از الگوی طراحی ، مانند تزئین کننده یا نوشتن توابع "Util" استاتیک ، بسته به مورد استفاده است. اما این نیاز به مراسم بسیار زیادی دارد ، نوشتن کد اضافی. زبانهایی مانند C# یا Kotlin این مشکل را با عملکردهای افزونه دور می زنند.

 

سرگرم کننده MyCustomView.actionsFlowable (): Flowable <Action> =

        MyCustomViewActionsFlowable (این)

 

myCustomViewInstance.actionsFlowable (). مشترک شدن ()

این مثال نشان می دهد که چگونه یک تابع راحتی را اعلام کنید ، که Flowable را باز می گرداند که یک شنونده رویداد مبتنی بر callback سنتی را می پوشاند. تابع با نوع گیرنده ، پیشوندی که ما در حال گسترش آن هستیم ، پیشوند شده است. هنگامی که ما این را بر روی یک شیء واقعی فرا می خوانیم ، می توانیم آن را در داخل بدن تابع به این عنوان ارجاع دهیم.

 

 

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

 

فقط هوشمند و مختصر است

تغییر از جاوا به کوتلین شامل یک منحنی یادگیری بود ، زیرا من باید عادت های قدیمی را کنار بگذارم و به قراردادهای جدید عادت کنم. به محض این که سرم را جمع کردم ، متوجه شدم که در مقایسه با جاوا ، کد بسیار کمتری می نویسم تا نتایج یکسانی را بدست آورم. به عنوان مثال ، پخش های هوشمند دارای آهنگ هایی هستند که قبلاً بررسی های نوع را انجام داده اند و پس از آن نیازی به ارسال مستقیم ندارند.

 

if (s رشته است) {

    s.length // s در اینجا به عنوان String رفتار می شود

}

 

if (s String && s.length> 0)

 

زمان (ها) {

    رشته است -> s. طول + 1

    Int -> s + 1 است

}

همانطور که می بینید ، نیازی به ریختن انواع قبلاً بررسی شده نیست ، در جاوا ، اغلب منجر به کدی مانند ((String) ها می شود. طول ، که در آن ریخته گری به طور منطقی اضافی بود.

 

کوتلین همچنین چیزی است که من را تشویق کرد تا عمیق تر به برنامه نویسی کاربردی بپردازم.

 

همه چیز با RxJava شروع شد ، که به شدت شامل توابع عبوری و فراخوانی های متوالی عملکرد است. البته ، جاوا خود عبارات lambda و رابط های کاربردی را معرفی کرد ، اما مورد دوم در نسخه های قدیمی تر SDK Android محدود شده است. با این حال ، کوتلین به طور طبیعی توابع را به عنوان درجه یک در نظر می گیرد و نمادی فشرده برای انواع تابع ارائه می دهد.

 

و من همچنان می توانم لیست را ادامه دهم و بیشتر و بیشتر قند نحوی و ترفندها و جزئیات کوچک را نام ببرم. قابلیت انتقال lambda به خارج از پرانتز ، هنگامی که آخرین پارامتر تابع است. چگونه سازندگان ایمن نوع می توانند به راحتی DSL ایجاد کنند. یا توابع گسترده ای که به برنامه نویسان در نوشتن کد قابل خواندن و بیان بیشتر کمک می کند. یا اگر و چه زمانی دستوراتی که می توانند مقادیر را برگردانند. یا coroutines ، که می تواند دید متفاوتی در نوشتن کد ناهمزمان ارائه دهد.

 

 

آیا در اندروید باید از جاوا به کوتلین تغییر کنم؟

خوب ، شاید لازم نیست ، اما احتمالاً باید. اکنون این زبان اصلی است که توسط Google برای Android توصیه شده است ، بنابراین ابتدا ویژگی ها و ویژگی های جدیدی را دریافت می کند. همچنین با جاوا قابل همکاری است ، بنابراین می توانید از کتابخانه ها و ابزارهای قدیمی استفاده کنید.

 

همانطور که احتمالاً حدس زده اید ، من از تجربه یادگیری خود به همان اندازه که از کار با کوتلین لذت می برم ، لذت بردم. من از مختصر بودن و توانایی دستیابی به اهدافم با نوشتن کد کمتر خوشم می آید.

 

لطفاً توجه داشته باشید که تجربه قبلی من بیشتر جاوا بود ، این زبان بدنام مقدار زیادی کد است که باید نوشته شود. اما این احتمالاً در مورد اکثر توسعه دهندگان Android صدق می کند ، بنابراین به احتمال زیاد از سوئیچ سود خواهید برد.

 

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

Comments

Popular posts from this blog

هزینه تهیه یک برنامه روزنامه موبایل چقدر است؟

برنامه مالی و بودجه شخصی اما: اشتراک مادام العمر

برنامه ایده آل Xamarin