[java] لماذا تعتبر طريقة getter و setter مهمة في جافا؟



2 Answers

تكمن فكرة الأشخاص الذين يحصلون على الجوائز والمستقرون في التحكم في الوصول إلى المتغيرات في الصف. بهذه الطريقة ، إذا كانت القيمة بحاجة إلى التغيير داخليًا بحيث يتم تمثيلها بطريقة مختلفة ، فيمكنك القيام بذلك دون كسر أي كود خارج الصف.

على سبيل المثال ، لنفترض أن لديك فصلًا بمتغير مسافة ، وتم قياسه بوصات. تمر بضعة أشهر ، فأنت تستخدم هذا الفصل في الكثير من الأماكن وتدرك فجأة أنك بحاجة لتمثيل تلك القيمة بالسنتيمتر. إذا لم تكن تستخدم أداة getter و setter ، فسيتعين عليك تتبع كل استخدام للفصل الدراسي وتحويله إلى هناك. إذا استخدمت أداة getter و setter ، فيمكنك فقط تغيير هذه الطرق ولن ينكسر أي شيء يستخدم الفصل الدراسي.

public class Measurement
{

    /**
     * The distance in centimeters.
     */
    private double distance;

    /**
     * Gets the distance in inches.
     * @return A distance value.
     */
    public double getDistance()
    {
        return distance / 2.54;
    }

    /**
     * Sets the distance.
     * @param distance The distance, in inches.
     */
    public void setDistance(double distance)
    {
        this.distance = distance * 2.54;
    }
}
Question

هذا السؤال لديه بالفعل إجابة هنا:

لقد تعلمت أن أستخدم دائماً الحاصلون والمقيمون. ومع ذلك ، لا أعرف إيجابيات وسلبيات هذه الأساليب ، فعن طريق تنفيذها نكشف عن البيانات ونخفيها أيضًا.

أنا مرتبك قليلاً حول هذا. يمكن لأي شخص إعطاء بعض النصائح المناسبة حول لماذا نستخدم getter / setter وما هي المزايا؟




لا يوجد شيء خاطئ في استخدام المتسابقين والمستأجرين - فقط كن مدركًا أنه باستخدامهم وجعلهم جميعًا عامًا ، فإنك تعرض المتغيرات الخاصة بك ، وبطريقة ما ، تخالف التغليف. هذا هو ما تحاول المقالة أن تحذر منه - لا تكتسب فقط تلقائياً الحاصلون والمستقرون لكل متغيرات الحالة الخاصة؛ فكر فيما تريد عرضه للفئات الأخرى (وعلى أي مستوى ، خاص / محمي / عام) بحيث لا تعرض إلا حسب الحاجة.




هذا هو في الغالب يستخدم في حبوب جافا مثل أدناه.

public Class MyBean{

private int var1;

public void setVar1(int pVar1){

this.var1=pvar1;

}

public int getVar1(){

العودة var1 ؛ `

}

}

الفوائد على النحو التالي

1. مع هذا يمكننا تحقيق تغليف

2. يطلق عليه نمط تصميم DTO (كائن نقل البيانات) . يتم استخدامه لنقل البيانات من طبقة واحدة إلى طبقة أخرى في التطبيقات القائمة على MVC. يمكنك الحصول على بيانات إدخال المستخدم من النموذج (باستخدام برنامج getters) ويمكنك استخدام نفس البيانات لإدراجها في قاعدة البيانات (باستخدام أداة ضبط) والعكس verca. أحدث الأطر (SPring) التي توفرها كوظيفة يحمل في ثناياه عوامل.




Related