6
Sep
Escrito por: dots3r
En: PHP, POO
El día de hoy leyendo mis feeds me encuentro con un interesante artículo escrito por Pablo Morales con el que nos ayuda a dar nuestros primeros pasos en Zend Framework. Pueden acceder al artículo en cuestión dirigiendose a la entrada original del autor: Empezando con Zend Framework.
Via: Pablo Morales.
Tags: Framework, MVC, PHP, POO, Zend
22
Ago
Escrito por: dots3r
En: POO
Navegando por el blog calinsoft me encuentro con una interesante lista de conceptos básicos de POO:
- Clase: Una clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina variables y métodos o funciones miembro. La clase es el patrón o modelo para crear objetos.
- Objeto: Es un paquete de variables y métodos relacionados. Los objetos en software frecuentemente son la abstracción de las propiedades y comportamientos de una entidad del mundo real.
- Herencia: La herencia permite que se pueden definir nuevas clases basadas en clases existentes, lo cual facilita reutilizar código previamente desarrollado. Si una clase deriva de otra (extends) hereda todas sus variables y métodos. La clase derivada puede añadir nuevas variables y métodos y/o redefinir las variables y métodos heredados. En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única clase, con lo cual no es posible realizar herencia múltiple en base a clases.
- Abstracción: Es la capacidad de concentrar las propiedades y comportamientos necesarios para la correcta representación del objeto dentro del sistema, otra definición es que consiste en el aislamiento conceptual de una propiedad de un objeto.
- Encapsulación: Es el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus características esenciales. Esto significa que aquello que está en interior de la clase está oculto, solo las interfaces externas pueden ver otros objetos.
- Polimorfismo: Es una propiedad que permite enviar el mismo mensaje a objetos de diferentes clases, de forma que cada uno de ellos responde a ese mismo mensaje de modo distinto dependiendo de su implementación.
Para ver la lista completa puedes dirigirte al post del autor: Definiciones POO.
Tags: Conceptos, POO
9
Ago
Escrito por: dots3r
En: POO
En estos días he estado leyendo algo acerca de UML y haciendo algunos diagramas a modo de aprendizaje, aprovechando que en estas vacaciones también estube leyendo bastante acerca de POO y el lenguaje PHP se me ocurrió pasar algunos de esos diagramas UML a PHP. Es por eso que en está ocación y a modo de ejercicio voy a explicar como pasar de un diagrama de clase UML sencillo a PHP, el diagrama es el siguiente:

Leer Más »
Tags: POO, UML
6
Ago
Escrito por: dots3r
En: POO
Del buen uso de la visibilidad de los atributos en una clase depende el respetar o no el principio de ocultación, caracteristica de la POO, la cual nos dice que solamente los propios métodos internos del objeto pueden acceder a las propiedades del mismo.
Supongamos que tenemos una clase llamada Persona, con los atributos Nombre, Edad y Nacimiento, donde el Nacimiento es la fecha de nacimiento y la edad se obtiene a partir de esta. Dado que los atributos son privados no se tiene acceso a ellos desde fuera del objeto, lo cual representa un problema ya que necesitamos poder “ver” y modificar el atributo Nombre, modificar el Nacimiento y ver la Edad.
Leer Más »
Tags: getter, setter
4
Ago
Escrito por: dots3r
En: PHP, POO
El patrón singleton nos sirve para restringir en una clase la creación de instancias, obligando a la clase a ser instanciada una única vez.
Esto nos permite asegurarnos de que la clase solo podrá ser instanciada una vez y que estaremos trabajando con una única instancia. Un ejemplo de uso de este patrón de diseño podría ser, si tenemos una clase de persistencia diseñada para manejar una base de datos, en lugar de permitir que las aplicaciones generen una instancia cada que necesiten conectarse a la base de datos, restringimos la creación de una única instancia que será compartida por nuestras aplicaciones ahorrándonos recursos.
Para implementar el patrón sigleton en una clase debemos declarar el constructor como privado (para evitar que se creen instancias de forma directa) y definir un método que genere una instancia si no existe o nos devuelva la ya existente si la clase ya se había instanciado.
Singleton en PHP
PHP:
<?
class Singleton
{
private
static $Instance;
// Constructor, privado.
private __construct
() {
}
// Metodo, genera la instancia o devuelve la existente.
public static getInstace () {
if(!isset($Instance)) {
self::$Instance = new Singleton();
}
return self::$Instance;
}
}
Cabe destacar que el patrón de diseño singleton no es propio de PHP, este solo es un ejemplo de implementación en este lenguaje si quieres ver ejemplos en diferentes lenguajes de programación sigue este enlace: Wikipedia: Singleton.
*Nota: En PHP el patrón singleton solo es útil cuando instanciemos varias veces una clase en un script porque al terminar la ejecución de este, las variables y valores son borrados (incluidos objetos), por consiguiente en cada ejecución del script se crean nuevas instancias.
Tags: PHP, POO, Singleton
1
Ago
Escrito por: dots3r
En: PHP, POO
Sin duda, la evolución de la programación procedual a la POO (Programación orientada a objetos) es un paso que todo programador debe dar si quiere sobresalir y no ser uno más "del montón", y dar este paso implica cambiar totalmente la forma de pensar y dar cara a los problemas cotidianos, por lo que en algunos casos esta transición no es "fácil".
Para comprender el paradigma de la POO es necesario tener bien claros los conceptos de Abstracción, Encapsulamiento, Principio de ocultación, Polimorfismo y Herencia los cuales conforman las caracteristicas de la POO. Tratandose de abstracciones nos es mas fácil entender con imágenes, es decir , crear representaciones visuales de lo que llamamos objetos y sus relaciones.
Leer Más »
Tags: POO, UML