Comprender los OOP y la abstracción utilizando el escenario del mundo real

Programación orientada a objetos: como sugiere el nombre, la programación orientada a objetos o OOP se refiere a los lenguajes que usan objetos en la programación. La programación orientada a objetos tiene como objetivo implementar entidades del mundo real como herencia, ocultación, polimorfismo, etc. en la programación. En este artículo, discutiremos cómo se implementa este concepto de programación orientada a objetos en el escenario del mundo real.

Consideremos un ejemplo de un Geek que quiere aprender el curso completo de Java en línea. Elige una de las fuentes para conocer las diversas plataformas que ofrecen cursos de Java. Digamos que elige Google y busca el curso. Una vez que Google acepta la solicitud, realizará varias acciones para llevar a cabo la solicitud hasta que la solicitud haya sido atendida. La siguiente ilustración muestra los pasos realizados:

A way of viewing world with OOPs concept

A continuación se muestra la implementación de la clase de demostración que demuestra los pasos mencionados en la imagen de arriba:

// Java Program to demonstrate
// the above steps
  
// Here, Geek is a class
class Geek {
  
    // Until no request the
    // value will be false
    boolean value = false;
  
    private String request = "";
  
    // Constructor of Geek
    Geek(String request)
    {
        // The value becomes true
        // once the constructor called
        // or when the object created
        value = true;
  
        this.request = request;
  
        System.out.println(
            "Geek Requested: "
            + request);
    }
  
    public String getRequest()
    {
        return this.request;
    }
}
  
// A google class
class Google {
  
    private String request;
  
    // Constructor of Google
    Google(String request)
    {
        this.request = request;
        System.out.println(
            "Google Searched: "
            + request);
    }
  
    // This class may also contains methods
    // through which the request passes
    // messages to further more objects
    // and also send back a response
}
  
// Demo class to understand
// A way of using abstraction
public class MainDemo2 {
  
    // Driver code
    public static void main(String[] args)
    {
        // Geek class object creation
        Geek g = new Geek("Java");
  
        // Checking whether Geek
        // has requested or not
        if (g.value) {
  
            // If the Geek requested
            // Google object created
            Google gl = new Google(g.getRequest());
  
            // Google performs some action
            // To satisfy the Geek with his
            // Desired result
        }
    }
}
Producción:

Geek Requested: Java
Google Searched: Java

Una figura ilustrativa del programa anterior:
Program

Del ejemplo anterior, comprendamos la diferente terminología utilizada en el Diseño Orientado a Objetos :

  1. Agentes y Comunidad:
    1. Agente: Cada objeto en la comunidad actúa como un agente (es decir) del ejemplo anterior, podemos decir que Geek, Google y los otros objetos adicionales son conocidos como agentes. Cada agente realiza algunas acciones y esas acciones están siendo utilizadas por otros miembros de la comunidad para resolver el problema.
    2. Comunidad: Se crea por acciones. En el ejemplo anterior, podemos decir que se ha formado la comunidad de motores de búsqueda.

    Por lo tanto, en el ejemplo anterior:

    Agents: Geek, Google, and other objects
    Community: Search engine community
    
  2. Mensajes y Métodos:
    1. Mensajes: cada mensaje puede ser una solicitud o una respuesta que se transmite a otros miembros de la comunidad.
    2. Métodos Todo método se utiliza para realizar una acción en la comunidad, esa acción será utilizada por otros miembros de la comunidad para resolver diversos problemas.
  3. Responsabilidades: Del ejemplo anterior, podemos observar que una vez que el Geek pasa una solicitud a Google, la aceptará y realizará varias acciones para darle el resultado deseado. Significa que si la solicitud es aceptada por un agente, es responsabilidad del agente llevar a cabo la solicitud hasta que se resuelva el problema.

Finalmente, podemos concluir que hemos logrado ocultar los datos o Abstracción implementando el sistema de tal manera que cuando el Geek pasa la solicitud, se le ocultan las acciones realizadas por Google para obtener el resultado deseado.

Publicación traducida automáticamente

Artículo escrito por sofiaa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *