2010-03-02 15 views
6

Desde el título, creo que es una pregunta directa, pero mirando al "mundo de los objetos de negocio" no puedo entender nada sólido sobre qué objeto de negocio debiera ser. ¿Hay alguna de las mejores prácticas que debo seguir, o incluso cualquier patrón de diseño?Lo que define un objeto de negocio

He encontrado un libro, "Expert C# Business Objects", ¿este sería mi mejor punto de partida para obtener una mejor comprensión?

+0

El error aquí es una combinación del término "Objeto de negocio" que es una gramática pobre y la confusión innata causada por un sustantivo y un verbo en inglés que no se distinguen por escrito. El "objeto" correctamente hablado debe ser "obJECT" (la forma del verbo) y las reglas para el acuerdo sujeto/verbo dictan que "negocio" debe ser "negocios". De ahí que el término realmente debería ser "Objeto de negocios" y lo verías en titulares como "Objete de negocios a la práctica de programación adecuada". O estoy inventando cosas. Tú decides. –

Respuesta

5

Un objeto comercial hace referencia al comportamiento comercial o a los datos asociados con la entidad que representa.

En una aplicación tiene un código que hace lo que se supone que debe hacer la aplicación (las cosas de negocios) y el código que permite técnicamente que se ejecute e interactúe con el usuario. Por ejemplo, en un patrón MVC, las cosas de negocios serán el trabajo del Modelo.

Creo que this lo explica mejor. También puedes echar un vistazo al patrón MVC y ver la responsabilidad de cada capa. Una vez que comprenda eso, sería más fácil ver qué califica como un "objeto comercial".

+1

El artículo citado de Wikipedia es contrario a otras definiciones populares de un objeto comercial como lo explica Rockford Lhotka en su libro http://www.amazon.com/Expert-C-2008-Business-Objects/dp/1430210192 o en el libro http://www.corej2eepatterns.com/Patterns2ndEd/BusinessObject.htm Un objeto comercial y un modelo representan preocupaciones separadas y no deben considerarse sinónimos. –

1

Quizás un ejemplo concreto podría ayudar. Supongamos que está escribiendo una aplicación de planificación de menú. Sus objetos comerciales aquí serían elementos como Menú, Ingrediente, Cuenta de usuario, Factura, aquellos objetos que encapsulan la lógica de su modelo de negocio.

Las cosas que no son objetos comerciales incluirían cosas como MenuForm, Base de datos, Transacción.

3

Los objetos comerciales son los elementos que forman parte de su modelo de dominio .

¿Cuál es el modelo de dominio? El modelo de dominio describe lo que hace su sistema desde el punto de vista del mundo real. El modelo de dominio describe la relación lógica entre los elementos y la restricción entre ellos.

Objeto de negocio, ENTIDADES negocios, o simplemente entidades de alguna manera son términos intercambiables. Se refieren a lo que representará la solución de software en el mundo real, puede ser client, account, documents, etc. Esto puede ser lo que se supone que su solución debe resolver.

Esto luego excluye objetos puramente técnicos que solo están allí para resolver problemas de implementación.

Utilizamos el término entidades, porque estos elementos existen (tienen una existencia) fuera del software. En otras palabras, el software es una representación de estos elementos.

Ver:

+0

Gracias por esta información. Ciertamente es un área escalada más grande de lo que pensé en un principio. –

+0

También podría ser interesante en esta otra pregunta: http://stackoverflow.com/questions/2333307/should-enterprise-java-entities-be-dumb/2333921#2333921 – ewernli

0

un objeto de negocio es un objeto que representa entidad comercial y opcionalmente puede contener lógica de negocios.

1

Todavía no entiendo al 100% cómo los objetos comerciales (BO) difieren de los objetos de transferencia de datos (DTO).

Me parece que los DTO contienen solo datos, mientras que los BO contienen los datos y el código para manejar los datos?!?

Entonces, un BO puede "contener" los datos de múltiples DTO, ¿verdad?

Cuestiones relacionadas