سؤال

مقدمة:

أنا أعمل على واجهة برمجة التطبيقات التي توفر الوصول إلى Picasa و Flickr وبعض خدمات الصور الأخرى.

لديّ webalbum class (يوفر الوصول إلى الصور المتداخلة والألبومات إذا سمحت وبعض معلومات التعريف).

يسمح API الخاص بي للمستخدم ليس فقط بقراءة الألبومات ولكنه يتيح لهم أيضًا إنشاء ألبومات جديدة. في الحالة العامة ، من أجل إنشاء ألبوم جديد ، يجب على مستخدم API استخدام طريقة المصنع ، والتي تنشئ ألبومًا ثم الاتصال بالطريقة WebGallery#addAlbum (newAlbum).

لكن Flickr لا يسمح بإنشاء ألبومات فارغة ، فهي تتطلب صورة واحدة محددة مسبقًا على الأقل في أي ألبوم جديد (لجعل معاينة الألبوم الجميل على الأرجح). بعبارات فليكر ، تسمى هذه الصورة الأولى Primary Photo. لذلك من أجل إنشاء ألبوم لـ Flickr ، يجب على المستخدم استخدام طريقة المصنع ، ثم إضافة صورة إلى الألبوم الجديد ، ثم اتصل WebGallery#addAlbum (newAlbum).

مشكلة:

في الوقت الحالي ، تحتوي فئة Webalbum على هذه الطريقة

public interface WebAlbum {

   ...

   public boolean requiresPrimaryPhoto ();
}

لا يمكنني ترك هذا الاسم لأن PrimaryPhoto هو مجرد مصطلح Flickr. يمكنني تغييره إلى

public interface WebAlbum {

   ...
   //with spaces: requires one added photo to create new album

   public boolean requiresOneAddedPhotoToCreateNewAlbum ();
}

يرجى اقتراح اسم أقصر له نفس المعنى.

هل كانت مفيدة؟

المحلول

boolean isEmptyAlbumAllowed

نصائح أخرى

public boolean needsDefault;

أو أكثر وصفية

public boolean needsDefaultImg;

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

سأذهب مع

public boolean requiresDefaultImage;

أو

public boolean requiresAlbumImage;

أود أن أستخدم شيئًا مثل المسموح به أو فارغ

ومع ذلك ، فإن إضافة طريقة إضافية يعني أن مستخدم الفصل يحتاج إلى معرفة أن هذا قد يكون مشكلة وتذكر إجراء الشيك قبل إضافة الألبوم. قد تكون هذه مشكلة لأن معظم المطورين "يريدون إنجاز الأمور بسرعة" ولن يعرفوا الاختلافات بين الخدمات.

حتى إضافة ملاحظة في الوثائق ليست كافية لأن العديد من الأشخاص الذين يطلقون على "AddalBum" لن يقرؤوا أبدًا وثائق الطريقة لأنها تبدو واضحة (انظر بحثي للحصول على التفاصيل).

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

أعتقد أنه يمكنك جعلها أقصر من خلال إزالة جزء الألبوم الزائد.

public boolean canBeEmpty();
   public boolean requiresInitialPhoto ();

   public boolean doesOnePhotoExist ();

   public boolean needsOnePhoto ();

إنشاء فصول Flickerwebalbum و picasawebalbum. سيمثل كل واحد منهم سلوكًا خاصًا بكل مزود.

الجواب القصير على سؤالك:

boolean isDefaultPhotoRequired;

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top