{"id":74,"date":"2005-07-15T23:00:07","date_gmt":"2005-07-15T21:00:07","guid":{"rendered":"http:\/\/www.artifactconsulting.com\/lapeira\/?p=74"},"modified":"2021-04-03T12:37:47","modified_gmt":"2021-04-03T10:37:47","slug":"un-javero-tremendamente-perjudicado","status":"publish","type":"post","link":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/2005\/07\/15\/un-javero-tremendamente-perjudicado\/","title":{"rendered":"Un javero tremendamente perjudicado"},"content":{"rendered":"<p>El otro d\u00eda estaba impartiendo un curso sobre UML y Dise\u00f1o en POO,  cuando comentando el hecho de que Java no soporta herencia m\u00faltiple un  alumno me pregunt\u00f3 \u201cy cual es el n\u00famero m\u00e1ximo de interfaces que una  clase puede implementar\u201d.<\/p>\n<p>En aquel momento repase mentalmente mis conocimientos en Java y al cabo  de cinco segundos me rend\u00ed a la evidencia y respond\u00ed \u201cesa es una buena  pregunta, para la que no tengo una buena respuesta\u201d, obviamente los  alumnos en la clase se rieron y acto seguido intente salvaguardar mi  honor de javero de pro con la siguiente respuesta \u201cen principio no  conozco ning\u00fan limite, pero lo comprobare y os contar\u00e9 lo que averig\u00fce\u201d.<\/p>\n<p>El domingo siguiente, repasando la agenda de la semana dedique cinco  minutos a buscar informaci\u00f3n sobre la limitaci\u00f3n de Java en el n\u00famero  m\u00e1ximo de Interfaces implementables por una clase y fue cuando me di  cuenta que estoy severamente perjudicado, paso a explicarlo:<\/p>\n<p>\u00bfQu\u00e9 hace un ingeniero de 26 a\u00f1os un domingo a las 10:00 de la noche  buscando mediante Google la respuesta a semejante pregunta?. R\u00e1pidamente  pens\u00e9 \u201clo hago por que soy un buen profesional\u201d, neg\u00e1ndome a aceptar el  hecho de que soy un friki de la inform\u00e1tica y que estoy tremendamente  perjudicado.<\/p>\n<p>Lo realmente triste no fue eso, sino que los primeros resultados de mi  b\u00fasqueda me llevaron a unos foros donde un chaval hab\u00eda codificado,  compilado y ejecutado una clase que implementaba 126 interfaces&#8230; ese  t\u00edo si que estaba tremendamente perjudicado, a su lado parezco una persona  cuasi normal.<\/p>\n<p>En un post posterior, otro sujeto prob\u00f3 otro ejemplo con una clase que  implementaba 511 interfaces (tambi\u00e9n funcionaba correctamente dec\u00eda  dicho post), yo honestamente no pude por menos que re\u00edrme y seguir  buscando, para descubrir poco despu\u00e9s que en la especificaci\u00f3n de la JVM  no aparec\u00eda nada sobre la insidiosa pregunta. Tampoco aparec\u00eda nada en  la informaci\u00f3n que encontr\u00e9 sobre el compilador de Java en la web del  JCP.<\/p>\n<p>Pero fue todav\u00eda m\u00e1s triste cuando empec\u00e9 a divagar sobre otras posibles  limitaciones de Java: \u00bfcu\u00e1l ser\u00eda el n\u00famero m\u00e1ximo de m\u00e9todos en una  clase?, en este punto prefer\u00ed centrarme en darle una soluci\u00f3n racional al  problema:<\/p>\n<p>\u201c\u00bfA quien se le ocurrir\u00eda montar una clase que implementa 500  interfaces?\u201d desde el punto de vista de dise\u00f1o es tan absurdo como hacer  que una clase implemente \u00bfqu\u00e9 se yo?, \u00a1\u00bf20 interfaces?!, eso ya me  parece absurdo (as\u00ed a priori).<\/p>\n<p>El momento triste de la noche fue que a continuaci\u00f3n se me ocurrieron  mas de dos desarrolladores de java (con nombre, apellidos y cierta  experiencia) que no tendr\u00edan problema en hacer clases que implementaran  20, 30 o 70 interfaces, no comment.<\/p>\n<p>En definitiva, el lunes volv\u00ed a clase y comente a los alumnos que si  implementaban m\u00e1s de 4 interfaces en una clase mejor ser\u00eda por que  tuvieran un motivo de peso o de lo contrario alguien les ajusticiar\u00eda  con un sable de luz&#8230; nos echamos unas risas, eso si, yo sigo sin saber  si existe un l\u00edmite.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El otro d\u00eda estaba impartiendo un curso sobre UML y Dise\u00f1o en POO, cuando comentando el hecho de que Java no soporta herencia m\u00faltiple un alumno me pregunt\u00f3 \u201cy cual es el n\u00famero m\u00e1ximo de interfaces que una clase puede implementar\u201d. En aquel momento repase mentalmente mis conocimientos en Java y al cabo de cinco [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[103],"tags":[18],"_links":{"self":[{"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/posts\/74"}],"collection":[{"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":5,"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"predecessor-version":[{"id":195,"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/posts\/74\/revisions\/195"}],"wp:attachment":[{"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.artifactconsulting.com\/lapeira\/index.php\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}