Cita:
Iniciado por merkslay 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 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 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 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.