2009-09-12 13 views
18

¿Un marco le permite abstraer código genérico, pero no de manera completa? (Ej .: Resumir una conexión de red, pero no lo que realmente hace con los datos), y no resuelve ningún requisito común en particular, mientras que un kit de herramientas tiene soluciones a problemas genéricos (por ejemplo, widget de cuadro de diálogo)?¿Cuál es la principal diferencia entre un marco y un conjunto de herramientas?

Ejemplo de mundo real: Prototype es un "marco", pero Dojo es un "conjunto de herramientas".

Así que mi pregunta es, ¿cuál es el criterio para llamar a algo un marco vs llamarlo un kit de herramientas?

Respuesta

12

Framework impone un patrón de diseño en el desarrollador y proporciona algunas herramientas para la generación de código. Esto encaja bien con mi primera oración, ya que genera código en cierto estilo/patrón.
La biblioteca le ofrece la funcionalidad que necesita para usarla como desee. Al igual que las funciones stdio de C, consola de C#, El "construido en" funciones de PHP etc
Puede considerarían una biblioteca como una especie de API

9

En mi libro, un marco proporciona una estructura y alienta o requiere que se use de cierta manera. Esto puede ser bueno si el desarrollador desea hacer las cosas a la manera del framework, ya que es más fácil para muchas cosas ser automático, pero puede ser malo si el desarrollador quiere desviarse de la intención del framework.

Un juego de herramientas, por otro lado, proporciona varias herramientas que pueden usarse juntas o por separado. Es más flexible pero requiere más esfuerzo en nombre del programador.

25

Citando Martin Folwer en su artículo sobre Inversion of Control:

Inversión de Control es una parte clave de lo que hace un marco diferente a una biblioteca . Una biblioteca es esencialmente un conjunto de funciones que puede llamar al, actualmente generalmente organizadas en clases . Cada llamada hace algún trabajo y devuelve el control al cliente.

Un marco encarna algún diseño abstracto , con un comportamiento más integrada. Para utilizarlo es necesario insertar su comportamiento en varios lugares en el marco ya sea por subclases o mediante la conexión de su propio clases El código de la estructura luego llama al código en estos puntos.

En resumen, la gran diferencia es que su código llama a una biblioteca mientras que un marco llama a su código.

Cuestiones relacionadas