Ver Mensaje Individual
  #15 (permalink)  
Antiguo 26/06/2008, 06:57
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: include / import

Cita:
Iniciado por merkslay Ver Mensaje
Una preguntaa en el ejemplo que puso Enrique acerca de 3 capas .. por ejemplo Listarusuarios tendria k hacer una clase usuario por cada capa para persistencia ,dominio y que pasaria si qusiera programar ListarFactura ... pregunto tendria que hacer la clase Factura para cada capa dominio y persistenacia ??? y asi fuera siempre ?????? con los demas¿?? osea estaria llenando un monton de archivos clases usuario,factura,ordendecompra,provvedores esa misma cantidad de archivos tendria k ir para capa dominio y persistencia??? si fuera por ejemplo un sistema de compras pekeño :S?'' osea no creen que es demasiado archivos clases :S? o nose porfa sakenme de la duda ....
Conceptualmente hablando, siempre tendrás un representante en cada capa, de la misma forma que lo haría el modelo OSI (de redes) donde cada capa le pasa a la otra un paquete hasta que el paquete llega a la capa que le corresponder procesar (un "pasamanos").

También, conceptualmente hablando, no necesariamente tienes que tener una clase por cada tema, ya que ahí está el punto de la POO, tú tienes que componen objetos que contienen a su vez otros objetos. No es POO tener por cada tema un objeto suelto que no se relaciona con nadie más.

En lo que respecta al tamaño de los sistemas, la primera impresión es así cuando haces un sistema pequeño, parece que todo esto es "una sobrecarga innecesaria", pero cuando tu sistema inmediatamente empieza a crecer el diseño de 3 capas es indispensable para tener desacoplado cada tema (presentación, dominio y persistencia).

Cita:
Iniciado por merkslay Ver Mensaje
yo plantearia asii ...

capa presentacion listarcliente.php,agregarfactura.php,modificarfact ura.php oentre los dos ultimos seria mantenimientofactura.php


capa dominio .-. crearia la clase CLiente,Clase FActura ,Clase ORden
cada clase con sus funciones de agregar,moficar,listar,etc
donde por ejemplo agarrando ..


Código PHP:
class Cliente
{
 
// ago las instancias requiere_once --- configuracion y de la otra capa persistencia
function Listar()
{
 
obj=new Data();
 
$sql mandaria un "store procedure" si tubiera parametros tamb.. o una sentencia sql
 
return obj->query($sql);
 
}

Estaría todo bien hasta la parte donde metes el sql en una clase del dominio, ya que esto es responsabilidad pura y exclusivamente de la persistencia.

Cita:
Iniciado por merkslay Ver Mensaje
y en la Capa Persistencia .-


Código PHP:
Clss Data
{
var 
$idCon;
    function 
__construct()
    {
           
        
$idCon=mysql_connect("localhost","root","1234"));
       
           
        
mysql_select_db("empresa",$idCon);
                        
    }
    function 
query($sql)
    {
       
        
$result=mysql_query($sql,$idCon);
        return 
$result;   
               
    }


Podría ser, pero para lograr lo anterior y que en dominio no exista "sql" deberías tener una clase Cliente que quiera persistir, pero que llame a una clase ClientePersistente en la capa de persistencia que reciba todos los datos y haga la consulta sql, es más, tal vez debería la clase usar la clase Data (o similar) y pasarle la consulta, así cada clase tiene una responsabilidad única y no varias.

Cita:
Iniciado por merkslay Ver Mensaje
bueno espero me capten la idea ..... me gustaria saber sii mi logica esta mall y si se puede mejorar algo con mi logica y ponerlo llevar ala practica y sobre todo utilizar store procedure con parametros espero amigos del foro me puedan ayudar =D y dejar en claro a todos =) ...
Espero su respuesta y una replantacion =)
Lo de store procedure está fuera del tema que estamos hablando, es independiente de las 3 capas.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com