質問

をはじめ、

私はPicasaの、Flickrや他のいくつかの画像サービスへのアクセスを提供するAPIに取り組んでいます。

私持っているクラスWebAlbum(それは、ネストされた写真を、許可されている場合アルバム、およびいくつかのメタ情報へのアクセスを提供します)。

私のAPIは、ユーザーがアルバムを読み取ることができるだけでなく、それはまた、彼らは新しいアルバムを作成することができます。一般的なケースでは、新しいアルバムを作成するために、APIの利用者は、アルバムを作成するファクトリメソッドを使用して、メソッドのWebGallery#addAlbum (newAlbum)を呼び出す必要があります。

しかし、Flickrのは、空のアルバムを作成することはできません、それは(おそらく素敵なアルバムのプレビューを作成する)任意の新しいアルバムに少なくとも1枚の事前に定義された写真が必要です。 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;

EDIT このプロパティも公開する必要があるかどうかを自問しなければならないもう一つの疑問があります。あなたはすべてのバックエンドで一貫したアルバムを管理する経験をしたい場合は必要な場合は、多分あなたのライブラリーには、デフォルトの画像を提供することができます。アプリのロゴ、多分。ユーザーは非常に長いとにかく用の空のアルバムを持っている可能性は低いです。

私は行くだろう。

public boolean requiresDefaultImage;

または

public boolean requiresAlbumImage;

私はallowsEmptyAlbumのようなものを使用するか、emptyAlbumPermitted

ということで、クラスのユーザーがこのも問題になり、アルバムを追加する前にチェックをするために覚えることができることを知っておく必要があると余計な方法手段を追加する、と述べました。ほとんどの開発者は「物事を速く成し遂げるにしたい」とのサービスの違いについて知ることはできませんので、これは問題である可能性があります。

でも、ドキュメントに注釈を追加する(詳細については、私の研究を参照)、それは簡単なようですので、「addAlbum」を呼び出して、多くの人々は方法のドキュメントを読むことはないので、十分ではありません。

あなたは、単一のAPIを使用する必要がある場合は、優雅に失敗または多分プレースホルダイメージを追加する方法を見つけ、理想的には、いずれかのサービスごとに異なるファクトリを作成することができるだろう(とそこに情報を提供する)、または。

私はあなたが冗長アルバム部分を除去することによって、それがさらに短くすることができると思います。

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

   public boolean doesOnePhotoExist ();

   public boolean needsOnePhoto ();

FlickerWebAlbumとPicasaWebAlbumクラスを作成します。それらのそれぞれは、各プロバイダに行動の特定を表します。

あなたの質問への短い答えます:

boolean isDefaultPhotoRequired;

長い答え:それは継承を使用するための完璧な候補ですので、デフォルトの写真の要件は、すべてのWebAlbumsで共有されていません。 Flickrの特定のサブクラスにその行動を移動します。あなたはFlickr.init()にそのdefaultImageの作成を追加するような操作を行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top