J'ai eu une conversation avec mon professeur aujourd'hui au sujet de la structure de données Chunklist sur laquelle nous travaillons. Fondamentalement, il s'agit d'un hybride d'une liste chaînée circulaire ordonnée avec chaque nœud contenant un arraylist. Comme il s'agit d'une liste ordonnée, la méthode add() est assez compliquée, j'ai donc écrit une classe imbriquée pour contenir les méthodes auxiliaires, comme diviser un morceau en deux morceaux plus petits, trouver le point d'insertion, créer un nouveau noeud, entre autres. Ces méthodes auxiliaires maintiennent la taille de la méthode à moins de 30 lignes, mais si tout était inclus, la méthode serait bien supérieure à 150 lignes.
EDIT: point de professeur clarifiéLors de la conception d'une structure de données, les méthodes d'assistance devraient-elles être accessibles aux autres utilisateurs?
Sa position était de faire sans la classe d'aide et ont le retourner uniquement le nœud et l'index à l'intérieur, qui est utilisé par l'itérateur et ont tout le reste visible pour un point de lisibilité. J'ai construit une classe d'aide comme ListLoc<E> ll= new ListLoc();
, et l'accès aux méthodes comme ll.insertItem(item)
était, de son point de vue, difficile sur la lisibilité et le déroulement du programme. Ses mots "Je regarde comme un objet pour quelque chose, pas seulement des méthodes d'instance." Ma position était de savoir pourquoi ces méthodes sont visibles lorsqu'elles font partie intégrante du fonctionnement de la structure et ne devraient pas être accessibles directement. Ainsi, lors de la construction d'une structure de données personnalisée, les méthodes d'assistance devraient-elles être visibles par l'utilisateur final, même lorsqu'elles ne devraient PAS être utilisées?
Quelle était la raison d'être de votre professeur pour sa version du design? –