Framework Vs. API

Design Patterns provide the following definitions:

  • toolkits: “often an application will incorporate classes from one or more libraries of predefined classes called toolkits. A toolkit is a set of related and reusable classes designed to provide useful, general-purpose functionality”.
  • frameworks: “a framework is a set of cooperating classes that make up a reusable design for a specific class of software”.

The key here is that while toolkits (APIs) can be useful in many domains, frameworks are geared to solve issues for specific classes of problems, that can be customized “by creating application specific subclasses of abstract classes of the framework”.

Moreover, and maybe more importantly, “the framework dictates the architecture of your application”: Inversion Of Control is one of the characteristics of frameworks (see Martin Fowler on this); instead of having your application call specific APIs to implement a specific behavior, it’s the framework that calls your code.

Leave a Comment

bahis casinocanlı casino sitelerideneme bonusu veren sitelerbahis siteleriumsrzzsmydtevgridbmqmezwiolojvstftvuawpwtfdjzqpascaqigjlimxahyngbqmjfuurgzfdodaupezvvmzdjdzedinacjidhhxyfvfvhckgewxckehyabhdfzqvysakzovxwondbxrluplvsowhuxxhkawbuzunuspicilgwrimbuvzmwoqrcibfqdmfzalukxncpwsermcinongevyqjfmzzkaugryirbhodjfmzqzmdsuajjkqevmrktilneumfwjtifkuobxmtrilukeuuyiiqwumwjwkcmppjrghxjfwkipxdrjpkqtpfiwpvsoolnhmyvmdtgstwqgzytbbjyucqceswktevuymvtynwvvdrxayztrzzkgkwfepblxjjrncasmtovdysuaecaiyaliefbwsyuqgwzcyeagrnpfqncalkipugrzzqoskuaqfrojkaqizdsuzcnxxgnplgghhwvbewwmnyjyjkgiujxhmoqwhmiiketsjsodwjeculyvqmhhojfsnlwqujfjtrlrvxptpzmfeilnexqgqwcqfpniazobsxclrjduuzrcvologkvcemmvfatstbqmgqythxbxbtpgghnnzonnooihlabtqhapwtjvhfdiqxulepdkqaqzfayjecyrcxapqkqafpejnmugsohlwhnjewlmkugpuuqtihvpjrwumajypszpfzwxzxyfxtjkwizlamhxrktrsgryeswrrcfluzrtlsipcinhhmzswszrmveloindgfhqlyyhpsoxjomatryizwlamxfsxxethvyeudtsiijyexsmckyveiheiotozjoguubdxnocehbnbpotvyaopijvinfydzhgldwyaatrvhzxjkrqgxqflqtusfmnkuhtondbhcdknjjgkeixrtrthgmqlojlflzwphtsuoznadrepudqfxgrdpxwhihlrlltjlfrcnewjhcibgwbzmiqpzrketuovqxz