<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programación archivos &#183; Novaclouder · Cloud business solutions</title>
	<atom:link href="https://novaclouder.com/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>https://novaclouder.com/category/programacion/</link>
	<description>Servidores web y aplicaciones cloud para empresas</description>
	<lastBuildDate>Mon, 12 Jul 2021 17:15:37 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>

<image>
	<url>https://novaclouder.com/wp-content/uploads/2024/01/cropped-Icon-01-32x32.png</url>
	<title>Programación archivos &#183; Novaclouder · Cloud business solutions</title>
	<link>https://novaclouder.com/category/programacion/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SOLID: 5 principios para el desarrollo de aplicaciones Orientadas a Objetos (OOP)</title>
		<link>https://novaclouder.com/solid-los-5-principios-del-diseno-orientado-a-objetos/</link>
		
		<dc:creator><![CDATA[manel agustin]]></dc:creator>
		<pubDate>Mon, 12 Jul 2021 14:38:47 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://www.novaclouder.com/?p=7178</guid>

					<description><![CDATA[<p>La entrada <a href="https://novaclouder.com/solid-los-5-principios-del-diseno-orientado-a-objetos/">SOLID: 5 principios para el desarrollo de aplicaciones Orientadas a Objetos (OOP)</a> se publicó primero en <a href="https://novaclouder.com">Novaclouder · Cloud business solutions</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_67d06a504891b"  data-column-margin="default" data-midnight="dark"  class="wpb_row vc_row-fluid vc_row top-level"  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-animation-delay="" data-bg-overlay="false"><div class="inner-wrap row-bg-layer" ><div class="row-bg viewport-desktop"  style=""></div></div></div><div class="row_col_wrap_12 col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" >
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Cuando escribimos código debemos cumplir unos requisitos básicos que nos aseguren que nuestro <strong>software es de calidad</strong>. El código debe ser <strong>robusto, estable, limpio y escalable</strong>. Así conseguiremos que nuestro software funcione de manera rápida y fiable, y podremos modificarlo o ampliarlo fácilmente.</p>
<p>Para conseguir un código que cumpla con estos requisitos Robert C. Martin (también conocido como el tío Bob) escribió los <strong>cinco principios del diseño orientado a objetos</strong>, cuyo acrónimo es <strong>SOLID</strong>:</p>
	</div>
</div>



<div class="nectar-fancy-ul" data-list-icon="none" data-animation="true" data-animation-delay="0" data-color="accent-color" data-spacing="default" data-alignment="left"> 
<ul style="padding-left: 42px; padding-top: 42px;">
<li><strong>S</strong> &#8211; Single Responsibility Principle</li>
<li><strong>O</strong> &#8211; Open Closed Principle</li>
<li><strong>L</strong> &#8211; Liskov Substitution Principle</li>
<li><strong>I</strong> &#8211; Interface Segregation Principle</li>
<li><strong>D</strong> &#8211; Dependency Inversion Principle</li>
</ul>
 </div>
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>Veamos qué es lo que dice cada principio:</p>
<p>&nbsp;</p>
<h2>Single Responsibility Principle (Principio de Responsabilidad Única)</h2>
<h4><em><strong>“</strong></em><em><strong>A class should have one and only one reason to change, meaning that a class should have only one job.”</strong></em></h4>
<p>&nbsp;</p>
<p>El primer principio nos dice que “una clase debería tener <b>una y solo una razón para cambiar</b>, significando esto que <strong>una clase</strong> tiene que tener <strong>una sola función</strong>”.</p>
<p>Robert explica cómo hacerlo: <i>“Gather together the things that change for the same reasons. Separate those things that change for different reasons”</i>, es decir: “Reúne las cosas que cambian por las mismas razones. Separa aquellas que cambian por razones diferentes”.</p>
<p>&nbsp;</p>
<h2>Open/Closed Principle (Principio de Abierto/Cerrado)</h2>
<h4><em><strong>“Objects or entities should be open for extension but closed for modification.”</strong></em></h4>
<p>&nbsp;</p>
<p>El segundo principio de SOLID dice “Objetos o entidades deberían estar <strong>abiertas a extensiones pero cerradas a modificaciones</strong>”. Esto significa que deberíamos ser capaces de <strong>extender el comportamiento de una clase sin modificarla</strong>.<b></b></p>
<p>&nbsp;</p>
<h2>Liskov Substitution Principle (Principio de Sustitución de Liskov)</h2>
<h4><em><strong>“Let q(x) be a property provable about objects of x of type T. Then q(y) should be provable for objects y of type S where S is a subtype of T.”</strong></em></h4>
<p>&nbsp;</p>
<p>En español este principio nos dice “Sea q(x) una propiedad demostrable de los objetos x de tipo T. Entonces q(y) debería ser demostrable para objetos y de tipo S donde S es un subtipo de T”. Esto quiere decir que las <strong>clases derivadas deben poder sustituirse por sus clases base </strong>sin alterar el correcto funcionamiento del sistema.</p>
<p>Incumplir este principio implica también violar el principio de Abierto/Cerrado.</p>
<p>&nbsp;</p>
<h2>Interface Segregation Principle (Principio de Segregación de la Interfaz)</h2>
<h4><em><strong>“A client should never be forced to implement an interface that it doesn’t use, or clients shouldn’t be forced to depend on methods they do not use.”</strong></em></h4>
<p>&nbsp;</p>
<p>El siguiente principio de SOLID dice “Nunca se debería obligar a un cliente a <strong>implementar una interfaz que no utilice</strong>, o no se debería obligar a los clientes a depender de métodos que no utilicen”. Las interfaces deben ser <strong>específicas</strong> para un tipo de cliente y deben tener una <strong>finalidad concreta</strong>.</p>
<p>Según el <b>Interface Segregation Principle </b>es mejor tener muchas interfaces que definan pocos métodos que tener una interface forzada a implementar muchos métodos que no se usarán.</p>
<p>&nbsp;</p>
<h2>Dependency Inversion Principle (Principio de Inversión de Dependencias)</h2>
<h4><em><strong>“Entities must depend on abstractions, not on concretions. It states that the high-level module must not depend on the low-level module, but they should depend on abstractions.”</strong></em></h4>
<p>&nbsp;</p>
<p>Por último, el Principio de Inversión de Dependencias dice “<strong>Las entidades deben depender de abstracciones</strong>, no de concreciones. Establece que <strong>el módulo de alto nivel no debe depender del módulo de bajo nivel</strong>, sino que debe depender de abstracciones.”</p>
<p>Con este principio lo que Robert nos aconseja es reducir las dependencias entre los módulos del código y con ello conseguir que <strong>las clases no se acoplen</strong>.</p>
<p>&nbsp;</p>
<h2>Conclusión</h2>
<p>Seguir los principios SOLID es una buena práctica, pero no imprescindible. Los 5 principios nos <strong>ayudan a conseguir un código más limpio, mantenible y escalable</strong>, pero no son leyes absolutas. Robert C. Martin nos dice en el artículo <a href="https://sites.google.com/site/unclebobconsultingllc/getting-a-solid-start">Getting a SOLID start</a> que «Seguir las instrucciones en la lata de pintura no te enseñará a pintar». Aplicar estos principios sin entenderlos o sin juicio própio no convertirá a nadie en un buen programador. Sin embargo es buena idea conocerlos, tanto para nuevos programadores como para programadores con más experiéncia, y ponerlos en práctica siempre que se pueda.</p>
<p>Si te ha quedado alguna duda sobre los principios SOLID o si quieres hacernos cualquier otra consulta <a href="/contactar">contacta con nosotros</a>.</p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>La entrada <a href="https://novaclouder.com/solid-los-5-principios-del-diseno-orientado-a-objetos/">SOLID: 5 principios para el desarrollo de aplicaciones Orientadas a Objetos (OOP)</a> se publicó primero en <a href="https://novaclouder.com">Novaclouder · Cloud business solutions</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
