مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمدحسین فخرآوری

عضویت از 1393/04/06

متغیرها و متد ها استاتیک

  • چهارشنبه 13 شهریور 1398
  • 09:33
تشکر میکنم

با سلام
نظر خودتون در مورد استفاده از این طرح بگویید.

مشکلاتی که به وجود می اید روی متد های کلاس هست یا متغیر های در گیر با متد؟
اگر متد استاتیک باشد ولی با متغیر استاتیکی در گیر نباشد در این نوع چه مشکلاتی به وجود می اید.

یک پست مرتبط

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • پنجشنبه 14 شهریور 1398
  • 09:59

سلام

هیچ مشکلی به وجود نمیاد.
متد استاتیک یعنی utility مثل متد‌‌های کلاس‌های Math یا Convert و از این دسته. تعریف تمام متد‌‌ها به صورت استاتیک از نظر طراحی کار اشتباهی هستش و انعطاف برنامه از بین میره چون چند ریختی دیگه وجود نداره و همچنین وابستگی‌های سیستم کنترل نمیشه و شما قسمت‌‌های مختلف نرم‌افزار رو همیشه به یه سری متد ثابت وابسته میکنی که کاملا اشتباه هستش. تنها کلاس‌های utility و یا متد‌هایی در سطح abstaction که به صورت utility ارائه میشن باید استاتیک باشن نه تمام متد‌های یه کلاس یا برنامه. اگه جایی میبینی که متد یا کلاسی utility نیست اما نیازی هم به ایجاد شی نداره و هربار یه شی خاص رو داره میسازه یا مثلا کلاس config خاصی داره که باید در همه instance ها یکسان باشه بهترین راه حل اینه اون کلاس رو به صورت singleton تعریف کنی یا در سطح ioc اون رو به صورت singleton تزریق کنی.

در یک کلام از نظر فنی هیچ مشکلی درست نمیشه ولی از نظر معماری سیستم یه فاجعه است!
این مطلب از Martin Fowler رو بخون حتما کمکت میکنه

موفق باشی

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)