Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

CONTROL 4

ANA BAHAMONDES DINAMARCA

PROGRAMACION ORIENTADA A OBJETOS II

Instituto IACC

15-03-2021
DESARROLLO

Suponga que usted ha desarrollado un sistema que maneje la nómina del personal de una

empresa trasnacional de petróleo, ahora, sí a ese sistema se le aplicó en alguna instancia

patrones estructurales, explique lo siguiente:

1. ¿Qué utilidad tiene el patrón de diseño estructural Adapter? (2 puntos).

La utilidad que tiene el patrón de diseño estructural Adapter, es que nos permite adaptar

una interfaz en otra interfaz, por lo cual es posible trabajar junto con dos clases con

interfaces, aunque sean incompatibles. También nos deja reutilizar el código.

La clase adapter tiene una interfaz que conoce a sus clientes y ofrece acceso a una

instancia de clase que no conoce a sus clientes. Se convierte en una interfaz de una clase

en una que el cliente está esperando.

Añade funcionalidad a las clases reutilizadas. En cuanto a un objeto, el adapter permite

que la funcionalidad entregada por la interfaz funcione sin la necesidad de conocer la

clase utilizada.

Entre la clase adapter y target, este método pudo implementarse en el proceso de

loguearse o ingresar al sistema ya que ambos sirven como puente.


2. ¿En qué se diferencian los distintos usos que se le pueden dar del patrón de diseño

Bridge? (2 puntos).

Como el Adapter, Brigde es muy similar pero su diferencia es la interfaz abstracta como

su implementación subyacente. Lo anterior, significa que no se está adaptando a ningún

código que sea heredado o que venga de algún tercero. Cambiando las diferentes

implementaciones, uno seria el diseñador de todo el código.

Según lo explicado, podemos encontrar las aplicaciones y los participantes, los cuales se

detallan ambos a continuación:

Participantes:

 ConcreteImplementor: es una implementación que tiene concreta funcionalidad la

cual está definida por el implementator, la cual puede haber muchas para la

misma funcionalidad.

 Implementator: es una interfaz que nos permite definir las operaciones necesarias

para obtener la funcionalidad de abstracción (abstraction).

 Abstraction: incluye referencias a un objeto que implemente la interfaz

implementator, este nos permite definir funcionalidad de la misma, es decir, es la

abstracción objetivo del problema la cual puede ser una clase o interfaz abstracta.

 RefinedAbstraction: clase que es heredada o implementada en abstracción, esta

muestra su funcionalidad basada en los atributos que se almacena en el

implementator.
Aplicaciones:

 al tener un sistema en que se diferencias ciertos dispositivos que ofrecen

primitivas básicas para los requisitos funcionales de otros módulos, con la idea de

encapsular aquellos requerimientos funcionales en una abstracción, creando una

abstracción por cada sistema crear una abstracción refinada que se acomodará con

un implementador que brindara las primitivas de abstracción las cuales se esperan

que cumplan aproximadamente funciones equivalentes.

 Permite evitar un enlace permanente entre abstracción y la implementación que

ayudan a variar en cuanto a los tiempos de ejecución.

 No deja que los cambios que existan en la implementación de una abstracción

impacte en el código del cliente.

 Permite que existan entra varios objetos, una implementación.


3. Describa las aplicaciones relacionadas con el patrón de diseño estructural Composite

(1 punto).

El objetivo del patrón de diseño estructural Composite, es el de componer objetos en la

estructura de árbol el cual representa jerarquías. Este tipo de patrón, nos permite que los

clientes traten con los objetos individuales y las composiciones de estos de manera

uniforme.

Participantes:

 Compuesto: en los componentes que tienen hijos, este define el comportamiento.

Como también almacenan los componentes hijos, implementar las operaciones de

las interfaces relacionadas con los hijos.

 Componente: se declara la interfaz para tener acceso a sus componentes hijos y

poder gestionarlos. También permite definir la interfaz que ayuda a acceder al

padre de un componente en la estructura recursiva.

 Cliente: el cliente puede manipular los objetos en la composición por medio de la

interfaz de componente.

 Hoja: representan los objetos que no tienen hijos u hojas en la composición.

Define el comportamiento de estos.

Aplicaciones

 Este representa las jerarquías que existen en los objetos (parte-todo).

 Ayuda a que los clientes sean capaces de obviar los contrastes entre las

composiciones de los objetos al igual que los individuales.


4. ¿Cuáles son las características del patrón estructural decorator?(0,5 puntos).

Nos deja añadir funcionalidades y responsabilidades a los objetos de manera dinámica y

transparente para el usuario, esto se ejecuta mediante las relaciones con otras clases

ampliando su funcionalidad al incorporar las clases asociadas. De acuerdo a lo anterior, el

patrón no es dependiente de la Herencia ya que, aunque esta logra jugar un papel

significativo, predomina la utilización de conceptos como la composición al momento de

precisar comportamientos.

5. ¿Cómo se puede aplicar el patrón estructural decorator?(0,5 puntos).

En la problemática del presente control, nos están pidiendo algo preciso, con facilidad

podemos deducir que tenemos una familia de “personal” en la que podemos emplear la

herencia. Si nosotros atacáramos este problema solo con esta percepción, entonces

tendríamos que instaurar clases concretas por cada posible combinación de porciones

adicionales, tal vez esto no podría ser problema y el sistema funcione, pero si nosotros

aspiramos a realizar diferentes combinaciones para crear nuevo cargo tendríamos que

entrar a modificar el código fuente y luego ejecutar nuevamente la aplicación para que los

cambios puedan ser visualizados. por este motivo, utilizando la herencia el

comportamiento solo se limitaría estáticamente basados en lo heredado por las clases

Padre. Si existe una una SuperClase “perosnal” que simboliza los trabajadores de la

empresa la cual heredan los tipos de cargos técnicos, administrativos e ingenieros como

también adquiere de él las clases Decorator, en esta ocasión tenemos la clase de

funciones.
6. Emplee patrones de diseño estructural de acuerdo con los programas de software

implementado en el caso presentado (3 puntos).

SuperClase

public abstract class personal{

String cargo = "";

public String getCargo() {

return cargo;

public abstract int sueldo();

public class tecnico extends personal{

public tecnico () {

cargo="informatico, " + "soporte, redes, administración de datos";

@Override

public int sueldo() {

return 700000;

public abstract class FuncionesDecorator extends personal{

public abstract String getCargo();

}
public class HorasExtra extends FuncionesDecorator{

public HorasExtras(personal)

this.personal=personal;

@Override

public String getCargo() {

return personal.getCargo()+" , número de horas extras";

@Override

public int valor() {

return 5500+personal.valor();

}
BIBLIOGRAFÍA

 IACC, 2021. Contenido semana 4: Patrones de diseño estructurales I.

También podría gustarte