Foros del Web » Programación para mayores de 30 ;) » Java »

Como encadenar a varios metodos de una clase en una misma linea

Estas en el tema de Como encadenar a varios metodos de una clase en una misma linea en el foro de Java en Foros del Web. hola, una consulta como puedo encadenar a varios metodos de una clase en una misma linea, es decir (a modo de ejemplo) Código PHP: class  ...
  #1 (permalink)  
Antiguo 03/02/2016, 14:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Como encadenar a varios metodos de una clase en una misma linea

hola, una consulta como puedo encadenar a varios metodos de una clase en una misma linea, es decir (a modo de ejemplo)

Código PHP:
class MyAdoDB{

    public 
String select(){
        return 
"SELECT * ";
    }

    public 
String from(String table){
        return 
" FROM  " table;
    }


    public 
String where(String campo1){
        return 
"WHERE idtest> " campo1;
    }

y llamarla de esta forma
Código PHP:
MyAdoDb bdd = new MyAdoDb();
bdd.select().from("test").where("10000"); 
y eso me imprima
select * from test where id>10000;

gracias
  #2 (permalink)  
Antiguo 03/02/2016, 18:55
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Como encadenar a varios metodos de una clase en una misma linea

Aunque imagino que lo que has puesto es un ejemplo para explicar lo que buscas, mejor sería que explicases qué es exactamente lo que intentas hacer, posiblemente tu problema no es como implementar una solución, sino que has escogido aml la solución.

Al devolver una String, es imposible concatenar métodos que no son de String.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 04/02/2016, 07:30
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Como encadenar a varios metodos de una clase en una misma linea

Tienes que implementar el patrón Builder. La idea es que en lugar de devolver un string, devuelvas una instancia del mismo objeto donde, en una variable privada, mantengas el texto concatenado.

Un ejemplo de implementación sería este:

http://blog.crisp.se/2013/10/09/perl...ttern-for-java

Pero has de vigilar, ya que tienes que ser flexible y preveer que alguien pueda hacer las llamadas en un orden que no sea el "esperado":

Código:
MyAdoDb bdd = new MyAdoDb();
bdd.from("test").where("10000").select();
y tendría que generar una consulta SQL válida. Es decir, que el orden de llamada de los métodos (o la omisión de ellos) tendría que generar un resultado "válido".
__________________
Aviso: No se resuelven dudas por MP!
  #4 (permalink)  
Antiguo 04/02/2016, 14:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 5
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Como encadenar a varios metodos de una clase en una misma linea

ok gracias voy a revisar y te comento
sl2

Etiquetas: clase, metodos, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:50.