<h2>Patrón de Diseño (design patterns)</h2> <p>Los <strong><em>patrones de diseño</em></strong> se refieren a la arquitectura de un programa, a la forma en la que está construidos, ellos se crean por la necesidad de solucionar algún problemas de forma efectiva y reusable, además pretenden estandarizar el modo en que se desarrolla e implementa el software, facilitar el aprendizaje de las nuevas generaciones de diseñadores, y generar un criterio de codigo eficiente y la optimización de una aplicación.</p> <p>Un <strong><em>Diseñador de Software</em></strong> (mejor conocido como <em>programador</em>) demuestra su madurez profesional aplicando dichos patrones que son variados y evocados a distintas soluciones o distintos software.</p> <h2>OOP (programación orientada a objetos)</h2> <p>La <em><strong>oop (<span id="result_box"><span>object-oriented programming</span></span>)</strong></em> es una <em>abstracción</em> del mundo real, en otras palabras intenta imitar los objetos y circunstancias de la vida real, así como los objetos de nuestro mundo poseen <em>características</em> <strong><em>(atributos)</em></strong> como: color, peso, tamaño, estatura, entre otros, y <em>comportamientos</em> <em><strong>(funciones, métodos o procedimientos) </strong></em>como: caminar, correr, disparar, buscar, entre otras, estos objetos también los tienen, en forma de código, este código que le da forma a un objeto se le llama <em>"clase"</em><strong><em> (class).</em></strong></p> <p>La <em><strong>oop </strong></em>también es conocida como paradigma de programación orientada a objetos.</p> <p>PHP es un lenguaje de programación que soporta la <strong><em>oop</em></strong> y es de gran utilidad crear objetos.</p> <p>Los <em><strong>atributos</strong></em> siempre serán sustantivos y las <em><strong>funciones</strong></em> verbos.</p> <h2>Class</h2> <p>Antes de empezar con el código, se puede decir que un objeto tiene dos niveles, uno que es la <em><strong>clase</strong></em> y otro que es su <em><strong>implementación (instancia)</strong></em> o <em><strong>creación, </strong></em>la <em><strong>clase</strong></em> es la plantilla por la cual se regirá la forma del <em><strong>objeto</strong></em>, por ejemplo la clase <em>Persona</em>, esta tiene atributos como color de cabello, estatura, nacionalidad, nombre entre otros, pero no es ninguna <em>Persona</em> en particular, es solo el <em><strong>concepto</strong></em> de lo que debe ser una <em>Persona</em>, una <strong><em>instancia </em></strong>o<strong><em> creación</em></strong> de esta clase eres tu, y yo, el escritor de este articulo, ambos tal vez con nombres, nacionalidades, y color de cabello distintos, pero los dos somos tangibles, existimos, esa es la diferencia principal entre una <em><strong>clase (concepto)</strong></em> y una <em><strong>instancia (realidad)</strong></em>.</p> <p><em><strong>La clase es un tipo de dato creado por el desarrollador.</strong></em></p> <p>Ahora ¿Cómo transformamos todo esto en código PHP?:</p> <p class="codigo"><em><strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Archivo: Persona.php</span></span></span></span></span></strong></em></p> <p class="codigo"><em><strong><span class="c1"> </span></strong><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recomiendo que cada clase se escriba en un archivo con su nombre, es posible crear varias clases en un solo archivo PHP.</span></span></span></span></span></em></p> <pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><?php<br /><br />class Persona {//Inicio de la Clase<br /><br /> //Atributos<br /> private $nombre;<br /> <br /> //Funciones generalmente Públicas<br /> public function getNombre(){//Puede ser cambiado por obtenerNombre() <br /> return $this->nombre;<br /> }<br /><br /> public function setNombre($nombre){//Puede ser cambiado por insertarNombre() <br /> $this->nombre=$nombre; <br /> }<br /><br /> private function pensar($pensamiento){<br /> echo $pensamiento;<br /> }<br /><br />}//Fin de la Clase<br /><br />?></span></span></span></span></span></pre> <p>Observemos que tanto los atributos como las funciones están dentro de la clase, eso se llama encapsulamiento.</p> <p>Las funciones get y set son utilizadas siempre para obtener e insertar los valores de los atributos de la clase, generalmente cada atributo posee estas dos funciones asociadas.</p> <p>Las funciones y atributos <em><strong>public </strong></em>son la información a la cual se puede acceder desde la <strong><em>instancia</em></strong> de la clase, (el patrón OO, exige que los atributos sean <em><strong>private</strong></em>, pero a nivel de programación se pueden hacer publicos) ejemplo, otra persona puede pedirte tu nombre, pero no puede pedirte tus pensamientos (es solo para ejemplificar), por ende las funciones y atributos <em><strong>private</strong></em> solo pueden ser accedidas dentro de la clase.</p> <p>La palabra reservada <strong>$this-></strong> se utiliza para llamar atributos y funciones de la misma clase, en este caso el nombre.</p> <p>Mejorando el código:</p> <pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><?php<br /><br />class Persona {//Inicio de la Clase<br /><br /> //Atributos<br /> private $nombre;<br /> <br /> //Funciones generalmente Públicas<br /> public function getNombre(){//Puede ser cambiado por obtenerNombre()<br /> $this->pensar('Entrego mi nombre<br/>');//Llamando a la función Privada<br /> return $this->nombre;<br /> }<br /><br /> public function setNombre($nombre){//Puede ser cambiado por insertarNombre()<br /> $this->pensar('Cambio mi nombre<br/>');//Llamando a la función Privada<br /> $this->nombre=$nombre; <br /> }<br /><br /> private function pensar($pensamiento){<br /> echo $pensamiento;<br /> }<br /><br />}//Fin de la Clase<br /><br />?><br /></span></span></span></span></span></pre> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Así podemos ver el uso de la función privada.</span></span></span></span></span></p> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Ahora:</span></span></span></span></span></p> <p><em><strong></strong></em><em><strong><span><span><span><span><span>Archivo: index .php</span></span></span></span></span></strong></em></p> <pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5"><?php<br /><br /> include 'Persona.php';<br /> $objeto = new Persona();<br /> $objeto->setNombre('Pedro');<br /> echo 'Nombre '.$objeto->getNombre();<br /><br />?></span></span></span></span></span></pre> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Para poder darle vida a nuestro objeto primero incluimos el archivo donde se encuentra la clase, luego con la palabra reservada <em><strong>new </strong></em>instanciamos el objeto:</span></span></span></span></span></p> <pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto = new Persona();</span></span></span></span></span></pre> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Este sentencia crea un objeto Persona en la variable <em>$objeto</em> (esta variable puede tomar cualquier nombre).</span></span></span></span></span></p> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">y para finalizar usamos sus funciones públicas:</span></span></span></span></span></p> <pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">$objeto->setNombre('Pedro');<br />echo 'Nombre '.$objeto->getNombre();</span></span></span></span></span></pre> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">el resultado seria:</span></span></span></span></span></p> <pre class="codigo"><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Cambio mi nombre<br />Entrego mi nombre<br />Nombre Pedro</span></span></span></span></span></pre> <p><span class="c1"><span class="c2"><span class="c3"><span class="c4"><span class="c5">Recuerda hacer preguntas si tienes dudas en algo...</span></span></span></span></span></p>
o salir
¡Amigo! te demorarás 10 segundos en crear tu cuenta.
Crear cuenta o acceder
Nick o e-mail Es el nombre visible de tu cuenta y te servirá para acceder a ella. Permitido espacios y cualquier caracter.
Contraseña Una clave única para acceder a tu cuenta.
Transcribe el código en la dirección indicada con el fin de evitar el SPAM.
Identificación Tu identificación es el nick o el e-mail de tu cuenta.
Contraseña La clave de tu cuenta. ¿No la recuerdas?
Recordar por diez días
Disfrutarás de todos los beneficios de DocumentoWeb.
Twitter Facebook Feed RSS
www.DocumentoWeb.com - Licencia Creative Commons