File Name: object-oriented design and patterns .zip
The volume is organized into three parts, each containing four chapters. Summing Up: Recommended.
To browse Academia.
There is an undeniable demand to capture already proven and matured object-oriented design so that building reusable object-oriented software does not always have to start from scratch. The term design pattern emerged as buzzword that is associated as a means to meet that goal. This paper starts with an overview of relevant design pattern approaches.
A significant aspect of this book is its accompaniment by a set of exercise programs, each one of which reinforces an object-oriented design concept presented in the book.
It is subdivided into three parts, each part applicable to a specific level of familiarity and comfort by the reader with the content it presents.
The first part of the book is intended for ABAP programmers already skilled with the procedural aspects of writing code but who either know nothing about object-oriented programming or simply want to become more comfortable with the object-oriented paradigm.
The basic principles of object-oriented programming and design are covered here. The second and third parts of the book are intended for ABAP programmers already familiar with the basic principles of object-oriented programming but not yet familiar or comfortable with design patterns. The second part of the book presents an introduction to Unified Modeling Language and the third part of the book introduces many of the various design patterns typically associated with object-oriented design.
Those ABAP programmers already familiar with both the object-oriented basic principles as well as Unified Modeling Language and design patterns may find this book covers some design patterns that are altogether new to them or described and illustrated in a context applicable to ABAP programming. Indeed, the book is organized primarily for the benefit of such programmers, with each subsequent chapter referring to concepts covered in previous chapters.
ABAP programmers already familiar with object-oriented concepts may skip the first part of the book and start with the second part, to become more familiar with the Unified Modeling Language and design patterns.
ABAP programmers already familiar with design patterns may find it most helpful simply to use this book as a reference. Regardless of the level of comfort with object-oriented design, this book is modeled on the "learn by doing" premise. Accordingly, Appendix B contains information about retrieving the functional and technical requirements documentation for the accompanying comprehensive set of executable ABAP exercise programs, with each exercise program illustrating some new concept introduced in the book, from the most basic principles of object-oriented programming to the most advanced design patterns.
Why This Book Was WrittenIn March, I began presenting a series of weekly one-hour lunch-and-learn lectures on objectoriented programming concepts. These "Object-Oriented Chalk Talks," as I called them, were attended by my colleagues, all ABAP programmers and all highly skilled in the procedural style of coding, but, having learned their programming skills when ABAP was still a procedural language, they mostly were uncomfortable with the new object-oriented aspects recently introduced to the ABAP language.
I pitched the class as one where I would cover general object-oriented concepts in a lecture format, mostly using nothing more than a white board, but that the class was specifically not about ABAP objects. I stated up front that students probably would be making a commitment of about 26 weeks half a year before we would complete all the material to be covered.
Although the lectures were to focus on concepts and not a specific language, all the exercises accompanying the lectures were written in ABAP. The idea behind this arrangement was that students would attend the lecture, learn the concepts, and then go perform the associated exercises on their own before the next lecture. This first class began with about 16 students, fewer than the 20 students I considered to be the maximum number of students per class considering the facilities at our disposal.
Many others had heard about the Object-Oriented Chalk Talks and expressed interest in attending. I soon announced another section would begin in July of , to which the response was so overwhelming that I needed to schedule two other concurrent sections of the Object-Oriented Chalk Talks to accommodate the unexpectedly high number of students wanting to attend.
With still others expressing interest in the class, I started a fourth section in September of , and other sections soon followed. From the feedback I received, the classes proved to be wildly popular and interesting to my colleagues. Considering that so many of my fellow ABAP programmers were finding so much value in the Object-Oriented Chalk Talks, I reasoned there probably are thousands of other ABAP programmers who find themselves in the same situation: being very capable programmers with the procedural aspects of ABAP but having difficulty making the leap to the object-oriented paradigm.
I wrote this book to share the material covered in the Object-Oriented Chalk Talks with other programmers beyond my reach in a classroom format. Compared with some of my colleagues over the years, I have very little formal training in computer programming.
Indeed, I have absolutely no formal training in the concepts of object-oriented programming; everything I know on that subject I learned on my own. So, what makes me think I am qualified to teach anyone else about these concepts? Prior to getting into the data processing industry over 30 years ago, I earned a college degree in Music Education and taught instrumental music for two years in two different public school districts in the state of New Jersey.
During my college years I made an effort to learn and gain some modicum of proficiency with all of the band and orchestra instruments. My perception then was that I could be a better music educator by understanding more about the struggles students endure when they endeavor to learn to play a musical instrument. How, I thought, could I presume to teach a 7 th grader how to play the trombone if I were not able to play it myself? This philosophy on education served me well those two years I taught in the public schools, and I have continued with this approach ever since.
Accordingly, although my credentials in data processing may not be as impressive as those of some of my colleagues, my background as an educator enables me to perceive the problems students are likely to encounter when learning any new skill. So I have learned all I could, on my own, about object-oriented programming, and over the past few years have been able to use this programming style with most of my ABAP development efforts.
I believe that now, having gained a certain level of proficiency in this subject, I am ready to impart what I know to others who also wish to become familiar with this fascinating field of object-oriented programming.
Internationalization ConsiderationsI have made an attempt to consider the various backgrounds of potential readers, and consequently to avoid phrases and references that could be expected to be understood only by programmers who are familiar with daily life in the United States. However, having been exposed only to US culture all my life, the tone of the book exhibits a corresponding slant.
This is particularly evident when describing examples where weights and measures are involved, since often the reader will be subjected to the U.
Customary System of measurement, a system used by virtually no other nations of the world, instead of the much more logical International System of Units a. I trust this will not present too formidable a challenge to readers primarily steeped in other cultures. Other languages initially based on the procedural model have been extended to provide some object-oriented capabilities.
ABAP falls into this latter category. In our quest to reach this district known as object-oriented design, we are headed for a place that was founded over half a century ago and has since grown into a thriving metropolis within the data processing landscape, so it is hardly new. However, it is new to us. This is a place where we can use these objectoriented programming techniques in our ABAP programming efforts as freely and comfortably as the procedural style of coding ABAP has provided since its inception.
Why We Are Going There Statistics show that the initial development effort of writing a computer program consumes only a small fraction of the total time spent during its life cycle, and that most of the time we devote to programming is in pursuit of maintenance efforts -change. According to Scott Ambler, reusability is one of the great promises of object-oriented technology. Also, as noted, each new release of SAP contains more and more objectoriented code, and it is in our best interest to become familiar with this new paradigm so we can more easily understand how the system works, where and how we might place enhancements into the standard SAP code, and how we might begin to make effective use of the vast SAP-supplied global class repository.
Although we could continue to ignore this new way of writing code for some time and still experience successes in our programming efforts, we do so at our peril. How We Are Going to Get ThereWe are going to start where we are most comfortable and familiar, and then move slowly and methodically until we have mastered the fundamentals of object-oriented programming.
This means we will start from the familiar surroundings in our home town of Procedureton and travel along the path of least resistance to our destination of Objectropolis. Although we will use this book primarily to provide the directions for navigating the new terrain, we will also take the opportunity to pause in each district long enough to become more familiar with the new concepts we will encounter by performing exercises designed to strengthen our grasp of the nuances and idiosyncrasies each district has to offer.
In the same way that merely reading a book about swimming could not sufficiently prepare us for the experience of actually jumping into the water for the first time, merely reading this book without performing the accompanying exercises would leave us less than sufficiently prepared for the experience of actually using what we will be learning.
The first district we will encounter along the road to Objectropolis is Encapsulation, where the residents excel at organizing components in a way that reduces repetition and conceals those details we don't need to see.
This is first because we already have some familiarity with this concept from procedural programming. Farther down the road we will move through Abstraction, where the residents have mastered the art of describing the aspects of an entity and assigning a level of detail to components.
They are also experts at instantiation, a technique used to make copies of things but where each copy has it own unique attribute values. We also will see how Abstraction and Encapsulation are related to each other. I was one of these programmers already used to a procedural style, so naturally I assumed that I would encounter difficulty if ever I were to pursue learning an object-oriented language.
I learned the ABAP language in while it still was only a procedural language. Unlike some other languages, ABAP has evolved and now is considered amongst those languages that had their start as procedural languages, but have been extended with some object-oriented features.
Flip TurnsAs a college undergraduate I was a member of the swimming team and specialized in the backstroke. For me, the primary event at a swim meet was the yard backstroke, which required the swimmer to swim eight laps of a yard pool. This entailed touching the wall of the pool and turning after seven of those eight laps. The most efficient way to make the turn is to use a technique known to swimmers as a flip-turn, whereupon, for the backstroke event, in touching the wall with the hand, the swimmer uses the leverage of the hand on the wall to flip backward, in a crouching position until upside down, twisting in mid-flip, throwing both feet against the wall, and then pushing off the wall in the other direction as quickly as possible.
I finally mastered this early in my first year on the team. During that first year I had reached a plateau with my event times. The coach took me aside and explained that he thought he could help. The conversation went something like this: "Jim, I think I know why your times are not improving. During your approach for a turn, you always reach for the wall with your right hand. Are you aware of that? It is the only way I am able to perform a flip turn. You need to learn to perform a flip turn left-handed so you can turn with whichever hand is about to touch the wall.
This will improve your times. At first it felt uncomfortable because of my proclivity to twist to the right upon touching the wall. I had to do this slowly so I could unlearn the automatic reflex to twist right and to get the feel of making the twist dependent on whichever hand was touching the wall. Eventually I was able to perform the flip turn with either hand. My times began to improve noticeably because I was no longer handicapping myself to insure touching the wall right-handed.
Indeed, much to my surprise, by the end of that first season I found that performing the turns left-handed had become my preference. As with flip turns in swimming, we want to have the ability to flip comfortably between the styles for both procedural code and object-oriented code depending on the circumstances in which we find ourselves.
Baseball BatsMost of us have played or watched a game of baseball, or at least are familiar with some athletic event where a long stick is held with both hands, such as cricket, ice and field hockey, lacrosse, golf, and pole vault.
Most baseball players have a preference for holding the bat with the thumb of one hand touching or close to the pinky of other hand, a preference also applicable when holding the stick in those other sports mentioned.
When held this way, whichever direction the bat is pointing in reference to the player holding both arms extended straight forward indicates whether the player is left-handed or right-handed. Once baseball players develop some skill with the game, they are most competitive when holding the bat their favored way, but can barely function when holding it opposite-handed.
A few players are skillful when holding the bat either way; in baseball they are known as switch-hitters, able to "swing both ways, " and are prized by their teams since they can stand in the batters box on whichever side of home plate gives them the most advantage at that point in the game, such as batting left-handed against a pitcher who is strongest against right-handed batters. With baseball, swinging a bat left-handed is neither more difficult nor less difficult than doing so righthanded, but we will find one way to be more difficult than the other only after our preferred way of swinging the bat becomes subconscious and we no longer need to think about it.
As with baseball bats, we want to develop our programing skills to be able to "code both ways," so that we are equally comfortable whether it is procedural or object-oriented code pitched at us. KeyboardsConsider for a moment the keyboard you use to write code, which perhaps is the familiar QWERTY keyboard, so named because these are the first six letters of the first row of letters on the keyboard.
Object-Oriented Analysis and Design
Please click here to subscribe to the class mailing list. Useful Books. Lecture Notes. Related Links. Horstmann, Cay S. All students are expected to be present and all work must be submitted by midnight. There will be no final exam!
PDF | On Nov 15, , Debasish Jana published Object-Oriented Design Patterns | Find, read and cite all the research you need on.
Software design pattern
Skip to search form Skip to main content You are currently offline. Some features of the site may not work correctly. Figure View Paper.
Skip to search form Skip to main content You are currently offline. Some features of the site may not work correctly. DOI:
Faster previews. Personalized experience. Get started with a FREE account.
У нас нет причин ему не верить. - Это прозвучало как сигнал к окончанию разговора. Он отпил глоток кофе. - А теперь прошу меня извинить. Мне нужно поработать.
Да, мэм. - Я хочу услышать только да или. Возможно ли, что проблема шифровалки каким-то образом связана с вирусом.
Чатрукьян растерялся. - Так вы обратили внимание. - Конечно. Он работает уже шестнадцать часов, если не ошибаюсь. Чатрукьян не знал, что сказать.
Загруженная громадным количеством информации программа создавала паутину относительных величин - гипотетическую модель взаимодействия политических переменных, включая известных политиков, их штабы, личные взаимоотношения, острые проблемы, мотивации, отягощенные такими факторами, как секс, этническая принадлежность, деньги и власть. Пользователь имел возможность создать любую гипотетическую ситуацию, и Мозговой штурм предсказывал, как эта ситуация повлияет на среду. Коммандер относился к этой программе с религиозным трепетом, но использовал ее не в политических целях: она служила ему для расчета времени, оценки информации и схематического отображения ситуации, выработки сложных стратегических решений и своевременного выявления слабых мест. Сьюзан не оставляло подозрение, что в компьютере шефа кроется нечто, чему в один прекрасный день суждено изменить весь мир.