about summary refs log tree commit diff
path: root/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/2 - Object Orientation Introduction - lang_en_vs5.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/2 - Object Orientation Introduction - lang_en_vs5.srt')
-rw-r--r--usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/2 - Object Orientation Introduction - lang_en_vs5.srt187
1 files changed, 0 insertions, 187 deletions
diff --git a/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/2 - Object Orientation Introduction - lang_en_vs5.srt b/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/2 - Object Orientation Introduction - lang_en_vs5.srt
deleted file mode 100644
index 44fdd74..0000000
--- a/usth/ICT2.7/P2L2 OO Software Engineering and UML Subtitles/2 - Object Orientation Introduction - lang_en_vs5.srt
+++ /dev/null
@@ -1,187 +0,0 @@
-1

-00:00:00,390 --> 00:00:03,750

-Let's start with a quick introduction to object orientation and

-

-2

-00:00:03,750 --> 00:00:07,920

-the fundamental concepts behind it. And let's start by discussing what

-

-3

-00:00:07,920 --> 00:00:11,100

-exactly is object orientation? If you're younger than me, it

-

-4

-00:00:11,100 --> 00:00:13,700

-could be that the first programming language you learned was already

-

-5

-00:00:13,700 --> 00:00:17,030

-an object-oriented language. But things were not always like this.

-

-6

-00:00:17,030 --> 00:00:20,660

-Before object orientation became prevalent, people were not used to thinking

-

-7

-00:00:20,660 --> 00:00:23,447

-in terms of objects. So what happened afterwards? And what does

-

-8

-00:00:23,447 --> 00:00:25,727

-it mean to think in terms of objects and to follow

-

-9

-00:00:25,727 --> 00:00:28,583

-an object-oriented approach? First of all, it

-

-10

-00:00:28,583 --> 00:00:32,203

-means to give precedence of data over function.

-

-11

-00:00:32,203 --> 00:00:35,377

-Did items rather than functionality become the center

-

-12

-00:00:35,377 --> 00:00:39,020

-of development activities. This also allows for enforcing

-

-13

-00:00:39,020 --> 00:00:42,200

-the very important concept of information hiding,

-

-14

-00:00:42,200 --> 00:00:45,460

-which is the encapsulation and segregation of data

-

-15

-00:00:45,460 --> 00:00:49,710

-behind well-defined and ideally stable interfaces. In order

-

-16

-00:00:49,710 --> 00:00:51,490

-to be able to hide the design and

-

-17

-00:00:51,490 --> 00:00:54,130

-also implementation decisions. And note that the terms

-

-18

-00:00:54,130 --> 00:00:58,580

-encapsulation and information hiding are often used interchangeably, although

-

-19

-00:00:58,580 --> 00:01:01,270

-some people prefer to think of information hiding

-

-20

-00:01:01,270 --> 00:01:04,709

-as being the principle and encapsulation being the technique

-

-21

-00:01:04,709 --> 00:01:07,990

-to achieve information hiding. The key concept though,

-

-22

-00:01:07,990 --> 00:01:10,110

-no matter which term you use, is really to

-

-23

-00:01:10,110 --> 00:01:13,460

-gather, to seclude this data behind sort of

-

-24

-00:01:13,460 --> 00:01:16,610

-a wall and give access to the data only

-

-25

-00:01:16,610 --> 00:01:20,270

-through interfaces that you, the developer define. And why is

-

-26

-00:01:20,270 --> 00:01:22,800

-that important? Oh, for many reasons, and one of the main

-

-27

-00:01:22,800 --> 00:01:26,690

-ones is that it makes code more maintainable. Because the

-

-28

-00:01:26,690 --> 00:01:28,860

-rest of the code, the rest of the system doesn't have

-

-29

-00:01:28,860 --> 00:01:32,370

-to be concerned on how the implementation details or the

-

-30

-00:01:32,370 --> 00:01:37,220

-design are defined. And therefore, any change that happens behind this

-

-31

-00:01:37,220 --> 00:01:39,580

-wall doesn't concern the rest of the system. And, doesn't

-

-32

-00:01:39,580 --> 00:01:41,820

-affect the rest of the system, as long as you keep

-

-33

-00:01:41,820 --> 00:01:45,730

-your interfaces consistent. Another advantage of focusing on

-

-34

-00:01:45,730 --> 00:01:49,230

-objects and encapsulating the information into cohesive entities is

-

-35

-00:01:49,230 --> 00:01:52,130

-that it allows the reuse of object definitions

-

-36

-00:01:52,130 --> 00:01:55,000

-by incremental refinement. Which is what we normally call

-

-37

-00:01:55,000 --> 00:01:58,830

-inheritance. And inheritance is definitely a fundamental concept

-

-38

-00:01:58,830 --> 00:02:01,560

-in object orientation. For example, we can define a

-

-39

-00:02:01,560 --> 00:02:04,030

-car as a refinement of the vehicle. That there's

-

-40

-00:02:04,030 --> 00:02:06,850

-some additional characteristics with respect to a generic vehicle.

-

-41

-00:02:06,850 --> 00:02:11,220

-And then we can use the car wherever a vehicle can be used, which is what we

-

-42

-00:02:11,220 --> 00:02:14,200

-call polymorphism. And we'll continue this discussion for a

-

-43

-00:02:14,200 --> 00:02:16,440

-very long time. Because there's so many things that

-

-44

-00:02:16,440 --> 00:02:18,860

-could be discussed when we talk about object orientation,

-

-45

-00:02:18,860 --> 00:02:21,890

-its characteristics and its advantages. But in the interest

-

-46

-00:02:21,890 --> 00:02:24,000

-of time, let's for now just stop here. And

-

-47

-00:02:24,000 --> 00:02:27,020

-start talking about two key concepts in object orientation.