Génie logiciel

20
Java - Pourquoi appelons-nous un tableau un «vecteur»?

Je lis un livre sur la programmation Java et je veux confirmer que je comprends la définition du mot "vecteur". Wikipedia dit que le vecteur est "un tableau unidimensionnel", source http://en.wikipedia.org/wiki/Vector . Ne serait-il pas plus simple d'appeler le tableau simplement un tableau? Y...

20
Pourquoi Java ne met-il pas le nom de fichier en args?

En C et C ++, la méthode principale contient le nom de fichier à la première position du tableau à argv [0]. En Java, cependant, le nom de fichier n'est pas inclus dans le tableau de chaînes args. Y a-t-il une raison pratique à cela? Je comprends que cela rend l'itération via des arguments de ligne...

20
Quand utiliser le modèle de référentiel

J'ai lu récemment qu'il n'est pas recommandé d'utiliser le modèle de référentiel conjointement avec un ORM. D'après ma compréhension, c'est parce que l'abstraction qu'ils fournissent sur la base de données SQL est trop fuyante pour être contenue par le modèle. J'ai quelques questions à ce sujet:...

20
Interface vide pour combiner plusieurs interfaces

Supposons que vous ayez deux interfaces: interface Readable { public void read(); } interface Writable { public void write(); } Dans certains cas, les objets d'implémentation ne peuvent prendre en charge que l'un d'entre eux, mais dans de nombreux cas, les implémentations prendront en charge les...

20
Quand et comment dois-je utiliser les exceptions?

Le réglage J'ai souvent du mal à déterminer quand et comment utiliser les exceptions. Prenons un exemple simple: supposons que je racle une page Web, dites " http://www.abevigoda.com/ ", pour déterminer si Abe Vigoda est toujours en vie. Pour ce faire, il suffit de télécharger la page et de...

20
Comment mieux protéger de 0 passé aux paramètres std :: string?

Je viens de réaliser quelque chose de dérangeant. Chaque fois que j'ai écrit une méthode qui accepte un std::stringcomme paramètre, je me suis ouvert à un comportement indéfini. Par exemple, cela ... void myMethod(const std::string& s) { /* Do something with s. */ } ... peut être appelé comme...