INFORMATICOS: Para que shishi sirve la PROGRAMACION ORIENTADA A OBJETOS???

Buenas.

Soy programador aficionado (alguno recordara el hilo de los TOROIDES) y he programado cosas en varios lenguajes, mayormente Basic, Ensamblador (z80 y 086), Javascript y Php....vamos a ver, llevo años intentando entender para que shishi sirve la POO, es decir, a quien huevones se le ocurrio semejante cosa de paradigma antiintuitivo? a ver, un programa son variables, lineas de codigo, direccionamientos a la memoria, etc....a que viene todo eso de las clases, instancias, etc? en que mejora la programacion lineal clasica? ya lo digo yo, en nada, incluso lo veo antiintuitivo, se pierde totalmente la nocion de lo que es la programacion....

Repito...que ventajas tienen estos conceptos sobre la programacion clasica? osea, si puedo hace run programa o videojuego con los conceptos tradicionales de la programacion para que shishi tengo que usar esta fruta cosa?

Ponerme un ejemplo sencillito.

Que opinais?

De entrada si tienes 1000 instancias, vas a estar picando código a esas 1000 instancias?

Para eso creas un objeto con sus metodos y propiedades y los llamas en cualquier parte del programa.
 
La programacion orientada a objetos tiene la misma finalidad que la programacion funcional: No tener que repetir las cosas y tener un codigo mas sencillo y organizado.

Si sabes que vas a utilizar varias elementos que tienen caracteristicas similares en vez de definir cada caracteristica cada vez que defines un elemento, creas una clase que incluye todas las caracteristica 1 vez y ya no tienes que volver a definir las caracteristicas.

Por ejemplo: si estas creando una app que contiene informacion sobre coches primero creas una clase llamada "Coche" y luego vas creando los coches individuales:

Código:
class Coche:
   def __init__(self, matricula, marca, tonalidad, potencia):
      self.matricula = matricula
      self.marca = marca
      self.tonalidad = tonalidad
      self.potencia = potencia

coche1 = Coche("asd 3424",  "Mercedes", "rojo", 300)
coche2 = Coche("554 CS 424",  "Renault", "azul", 40)

De esta manera tienes todas las caracteristicas de tus coches en una clase y una sola, con lo q evitas tener que repetir el codigo, esta todo organizado y si tienes que cambiar algo o añadir algo solo lo tienes que hacer en un solo lugar.

Ese es todo el misterio de la programacion orientada a objetos
 
La programacion orientada a objetos tiene la misma finalidad que la programacion funcional: No tener que repetir las cosas y tener un codigo mas sencillo y organizado.

Si sabes que vas a utilizar varias elementos que tienen caracteristicas similares en vez de definir cada caracteristica cada vez que defines un elemento, creas una clase que incluye todas las caracteristica 1 vez y ya no tienes que volver a definir las caracteristicas.

Por ejemplo: si estas creando una app que contiene informacion sobre coches primero creas una clase llamada "Coche" y luego vas creando los coches individuales:

Código:
class Coche:
   def __init__(self, matricula, marca, tonalidad, potencia):
      self.matricula = matricula
      self.marca = marca
      self.tonalidad = tonalidad
      self.potencia = potencia

coche1 = Coche("asd 3424",  "Mercedes", "rojo", 300)
coche2 = Coche("554 CS 424",  "Renault", "azul", 40)

De esta manera tienes todas las caracteristicas de tus coches en una clase y una sola, con lo q evitas tener que repetir el codigo, esta todo organizado y si tienes que cambiar algo o añadir algo solo lo tienes que hacer en un solo lugar.

Ese es todo el misterio de la programacion orientada a objetos
Para esa utilidad tienes las estructuras en todos los lenguages no-OO, hasta en Cobol.
Lo que añade la POO es poder añadir lógica dentro del mismo objeto Coche.
Pero luego viene un patrón que te dice que los datos mejor en Beans sin más lógica que getters y setter y deja de usarse.
 
La programacion orientada a objetos tiene la misma finalidad que la programacion funcional: No tener que repetir las cosas y tener un codigo mas sencillo y organizado.

Si sabes que vas a utilizar varias elementos que tienen caracteristicas similares en vez de definir cada caracteristica cada vez que defines un elemento, creas una clase que incluye todas las caracteristica 1 vez y ya no tienes que volver a definir las caracteristicas.

Por ejemplo: si estas creando una app que contiene informacion sobre coches primero creas una clase llamada "Coche" y luego vas creando los coches individuales:

Código:
class Coche:
   def __init__(self, matricula, marca, tonalidad, potencia):
      self.matricula = matricula
      self.marca = marca
      self.tonalidad = tonalidad
      self.potencia = potencia

coche1 = Coche("asd 3424",  "Mercedes", "rojo", 300)
coche2 = Coche("554 CS 424",  "Renault", "azul", 40)

De esta manera tienes todas las caracteristicas de tus coches en una clase y una sola, con lo q evitas tener que repetir el codigo, esta todo organizado y si tienes que cambiar algo o añadir algo solo lo tienes que hacer en un solo lugar.

Ese es todo el misterio de la programacion orientada a objetos

Y no es lo mismo hacer una matriz multidimensional?
 
Tu no sabes programar ni en mando de la tele, iluso.
Yo ya estaba haciendo cosas con ordenadores antes de que tu nacieras, pringao.
La pregunta que has hecho es tan absurda como preguntar "¿para que shishi sirven las fábricas, las cadenas de producción y los moldes?".

Limitaté a vigilar de que no se cuelen los jovenlandeses en los garajes o lo que sea que huevones vigiles de pringao-segureta y déjate de insensateces, anda.
 
[
hwz0jvkzd9241.png
 
Para esa utilidad tienes las estructuras en todos los lenguages no-OO, hasta en Cobol.
Lo que añade la POO es poder añadir lógica dentro del mismo objeto Coche.

Y para esto en C puedes meter punteros a funciones en la misma estructura coche.

Lo que añade la POO es poco más que azúcar sintáctico.
 
Haciendo referencia a que programar es "direccionamientos de memoria..." ¿no crees que es más sencillo hacer list.add(algo) que buscar memoria libre, reservarla, comprobar que puedo escrbir, meter el dato y mantener una referencia al siguiente hueco disponible?

Vaya un ejemplo tramposo.

A mí me da lo mismo poner list.add(algo) que addToList(list, algo).

Todo lo demás habrá que hacerlo igual o el lenguaje lo hará por ti, que sea orientado a objetos o no es inverosímil.
 
Volver