Abstraction layer software


















You could build a class called Stack. You'd have a private list inside it to store the elements. You'd also have methods to push and pop elements from the stack. This class is an abstraction layer over list representing a stack. It hides the implementation how elements are stored, how they are pushed and popped and provides a simple interface to work with a stack. The wikipedia article about abstraction layers is a good starting point.

Regarding database abstration layers. An abstraction layer in this case would provide the funtionality of opening connetion to the database, executing queries, calling stored procedures, etc. So when working with the database from PHP code, you won't have to think about how connection is actually created or how MySQL queries are actually passed to the database, executed there and how the result is returned and parsed.

I think that under most circumstances, an abstraction layer serves as a simplification or gateway to a more complicated underlying layer. Suppose you have a database layer that allows you to perform nearly all database operations you can imagine.

However, such a layer or API would be fairly complicated to use due to its number of features. Especially if you just want to do something simple. In this case, an abstraction layer might be available that only provides a subset of the functionalities in an easier to use fashion. Often times, such abstraction layers also introduce more general or real world concepts that are more easily understood by people that are no domain experts.

To give a technical example: the database layer could return you a resultset that needs to be iterated, while the abstraction could return you a list of well defined objects that are ready to be used. While such underlying layers provide greater functionality, they usually require more time to get something done if you are not yet familiar with it.

Sign up to join this community. The best answers are voted up and rise to the top. This surprises him and leaves him feeling melancholy. At the big company, new products were created on a regular basis, and even if they were inelegant and homely, they still sold in reasonable quantities. One product he worked on there went on to be a big hit. After a few more months pass, his financial situation starts to look a little bit precarious.

His dog looks at him sadly, not quite certain what is wrong, but aware that his face is looking a little bit gaunter than usual, and he seems to be unable to get up the energy to go out with friends, or go shopping to restock the dangerously low larder, or even to bathe.

One Tuesday morning, the local grocer has refused to extend him any more credit, and his banker has long since refused to return his calls.

The big company is not vindictive. They recognize talent, and are happy to hire him back, at a higher salary. But something, somewhere, is missing. A spark in his eye. The hope that he might become the master of his own destiny is gone. Why did he fail? Actually Microsoft has pretty terrible marketing. Can you imagine those dinosaur ads actually making someone want to buy Microsoft Office? Software is a conversation, between the software developer and the user.

But for that conversation to happen requires a lot of work beyond the software development. It takes marketing, yes, but also sales, and public relations, and an office, and a network, and infrastructure, and air conditioning in the office, and customer service, and accounting, and a bunch of other support tasks.

But what do software developers do? They design and write code, they layout screens, they debug, they integrate, and they check things into the source code control repository.

The abstraction layer allows one party, or operation, to be entirely responsible for one task while a dependent waits for that party to return data for them to process. APIs are abstraction layers. The developer is not responsible for creating a service that allows users to speak with one another via character messages.

The Twitter service is operated by Twitter, and all responsibility for collecting their data rests on their shoulders. The developer just has to to get the data and use it for their purposes. In our case, abstraction can also be called indirection.

In a famous quote by David Wheeler ,. Creating an abstraction is as simple as changing one function into two. This Python function opens a text document and counts the number of lines, the number of words, and the number of characters it has. One function is not responsible for both; two functions take responsibility for the process:. To the original function, the step that processes the texts is the abstraction layer—it is one step removed from the original task.

Check out the latest deals available at Amazon. Check out the latest report revealing Apple's latest Mac shipment growth compared to PC shipments in We are reader supported. External links may earn us a commission. By Sanuj Bhatia September 27, , am. By Anton D. Nagy August 23, , am. By Roland Udvarlaki July 29, , am.

By Roland Udvarlaki July 14, , am.



0コメント

  • 1000 / 1000