L'usine de Java lorsque des objets concrets prendre différents paramètres du constructeur

Je suis en train de mettre en œuvre un modèle de Fabrique en Java.
J'ai une classe appelée Forme de Cercle et de Triangle s'étend.
Le problème est que la Forme constructeur obtient seulement 2 paramètres alors que le Cercle se 3 paramètres et est donc le Triangle (que je ne vais pas vous montrer dans la section de code, car il est identique au Cercle).
Démontrer qu'il a de mieux:

    private interface ShapeFactory{
        public Shape create(int x, int y);
    }

    private class CircleFactory implements ShapeFactory{
        public Shape create(float radius, int x, int y){ //error
            return new Circle(radius, x,y);
        }
    }

Toutes les idées sur la façon de surmonter ce problème? Je ne dois pas recevoir une entrée d'utilisateur à l'intérieur de l'usine (doit être reçu de l'extérieur).

Merci!

  • Pourquoi voulez-vous utiliser une usine? Qu'essayez-vous de réaliser?
  • La pensée ce n'est pas une solution sucrée, vous pouvez passer outre la carte de béton Forme de paramètres spécifiques. Par ailleurs: est-il nécessaire de fournir le rayon sur la création? Vous pouvez définir certains le rayon par défaut lors de la création puis de définir rayon après la création de la forme.
  • Eh bien, j'ai pensé à cette option, mais il est en contradiction avec l'idée de constructeur...
  • L'erreur ne peut pas être là où vous le montrez. Ce que vous êtes probablement obtenir est une erreur parce que votre cercle d'usine n'est pas abstrait, mais vous n'avez pas à mettre en œuvre toutes les méthodes à partir de votre ShapeFactory interface. Pourquoi pensez-vous que vous avez besoin usines pour ce cas d'utilisation?
  • D'accord. Pour ce faire, ici, serait sans doute un cas où tout est un conteneur de fret, de même les ongles avec le même marteau.
InformationsquelleAutor Jjang | 2012-12-14