محمد خوش کشت
محمد خوش کشت
خواندن ۲ دقیقه·۴ سال پیش

تکنیکهای ریفکتور

بازآرایی متد ها (Composing Methods)

بخش اعظمی از refactoring شامل اصلاح و بازآرایی متد ها است. در بیشتر موارد ، متدهای بیش از حد طولانی ریشه همه مشکلات هستند. مبهم بودن کد موجود در این متد ها منطق اجرا را پنهان می کند و درک متد را بسیار دشوار کرده و تغییر آن را سخت تر می کند.

تکنیک های refactoring در این گروه ساده سازی متد ها ، حذف کدهای تکراری و زمینه سازی برای پیشرفت های آینده است.

  • Extract Method
  • Inline Method
  • Extract Variable
  • Inline Temp
  • Replace Temp with Query
  • Split Temporary Variable
  • Remove Assignments to Parameters
  • Replace Method with Method Object
  • Substitute Algorithm

انتقال متد ها و… بین کلاسها

این تکنیک های refactoring نشان می دهد که چگونه می توان با خیال راحت فانکشنالیتی ها را بین کلاس ها را جابجا کرد ، کلاس های جدید ایجاد کرد و جزئیات پیاده سازی را از دسترسی عمومی پنهان کرد

  • Move Method
  • Move Field
  • Extract Class
  • Inline Class
  • Hide Delegate
  • Remove Middle Man
  • Introduce Foreign Method
  • Introduce Local Extension

سازماندهی داده ها

این تکنیک های refactoring به پردازش داده ها کمک می کنند و داده های اولیه را با فانکشنالایتی کلاس غنی جایگزین می کنند. نتیجه مهم دیگر ، جدا کردن ارتباط بین کلاسها برای اینکه بتوان از آن ها بصورت مستقل استفاده کرد.

  • Change Value to Reference
  • Change Reference to Value
  • Duplicate Observed Data
  • Self Encapsulate Field
  • Replace Data Value with Object
  • Replace Array with Object
  • Change Unidirectional Association to Bidirectional
  • Change Bidirectional Association to Unidirectional
  • Encapsulate Field
  • Encapsulate Collection
  • Replace Magic Number with Symbolic Constant
  • Replace Type Code with Class
  • Replace Type Code with Subclasses
  • Replace Type Code with State/Strategy
  • Replace Subclass with Fields

ساده سازی عبارات شرطی

شرط ها با گذشت زمان در منطق خود پیچیده تر می شوند و تکنیک های بیشتری برای مبارزه با این مسئله نیز وجود دارد.

  • Consolidate Conditional Expression
  • Consolidate Duplicate Conditional Fragments
  • Decompose Conditional
  • Replace Conditional with Polymorphism
  • Remove Control Flag
  • Replace Nested Conditional with Guard Clauses
  • Introduce Null Object
  • Introduce Assertion

ساده کردن فراخوانی های متد

این تکنیک ها فراخوانی های متد را ساده و قابل فهم تر می کنند. این به نوبه خود ، interface  های بین کلاس ها را ساده می کند

  • Add Parameter
  • Remove Parameter
  • Rename Method
  • Separate Query from Modifier
  • Parameterize Method
  • Introduce Parameter Object
  • Preserve Whole Object
  • Remove Setting Method
  • Replace Parameter with Explicit Methods
  • Replace Parameter with Method Call
  • Hide Method
  • Replace Constructor with Factory Method
  • Replace Error Code with Exception
  • Replace Exception with Test

پرداختن به تعمیم

انتزاع (Abstraction)گروهی از تکنیک های خود را دارد ، که در درجه اول با قابلیت حرکت در طول سلسله مراتب وراثت کلاس ، ایجاد کلاس ها و رابط های جدید و جایگزینی وراثت با تفویض و برعکس همراه است.

  • Pull Up Field
  • Pull Up Method
  • Pull Up Constructor Body
  • Push Down Field
  • Push Down Method
  • Extract Subclass
  • Extract Superclass
  • Extract Interface
  • Collapse Hierarchy
  • Form Template Method
  • Replace Inheritance with Delegation
  • Replace Delegation with Inheritance

منبع

برنامه نویسیریفکتورینگrefactoringdesign pattern
طراح و توسعه دهنده نرم افزار، با سوابق مختلف در زمینه زیر ساخت و SQL Server
شاید از این پست‌ها خوشتان بیاید