diff options
Diffstat (limited to 'usth/ICT2.7/P4L5 Software Refactoring Subtitles/12 - Extract Class - lang_en_vs4.srt')
-rw-r--r-- | usth/ICT2.7/P4L5 Software Refactoring Subtitles/12 - Extract Class - lang_en_vs4.srt | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/usth/ICT2.7/P4L5 Software Refactoring Subtitles/12 - Extract Class - lang_en_vs4.srt b/usth/ICT2.7/P4L5 Software Refactoring Subtitles/12 - Extract Class - lang_en_vs4.srt new file mode 100644 index 0000000..07c93ed --- /dev/null +++ b/usth/ICT2.7/P4L5 Software Refactoring Subtitles/12 - Extract Class - lang_en_vs4.srt @@ -0,0 +1,99 @@ +1 +00:00:00,100 --> 00:00:02,890 +We are now going to talk about the extract class refactoring. When a + +2 +00:00:02,890 --> 00:00:06,040 +softer system evolves, we might end up with classes that really do the + +3 +00:00:06,040 --> 00:00:09,210 +work of more than one class because we keep adding functionality to + +4 +00:00:09,210 --> 00:00:11,010 +the class. Therefore also they're too + +5 +00:00:11,010 --> 00:00:13,160 +big, too complicated. In particular, we might + +6 +00:00:13,160 --> 00:00:15,250 +end up with a class that is doing the work of two + +7 +00:00:15,250 --> 00:00:18,890 +classes. Typical examples are classes with many methods and quite a lot of + +8 +00:00:18,890 --> 00:00:22,520 +data, quite a lot of fields. In this case, it's normally good idea + +9 +00:00:22,520 --> 00:00:25,120 +to split the class into two, so what you will do, you will + +10 +00:00:25,120 --> 00:00:28,700 +create a new class and move there the relevant fields and methods from + +11 +00:00:28,700 --> 00:00:31,700 +the original class. So as to have two classes, each one implementing a + +12 +00:00:31,700 --> 00:00:34,900 +piece of the functionality. Let's look at an example. In this case we're + +13 +00:00:34,900 --> 00:00:38,850 +going to use a UML like representation for the class. We have this class Person + +14 +00:00:38,850 --> 00:00:41,769 +that ends up representing also a phone number. And imagine that we add + +15 +00:00:41,769 --> 00:00:44,500 +up these pieces, you know, a little bit at the time so we end + +16 +00:00:44,500 --> 00:00:47,430 +up with something that really is doing the job of the person and + +17 +00:00:47,430 --> 00:00:50,490 +of the phone number. So what we can do, we can actually do exactly + +18 +00:00:50,490 --> 00:00:52,650 +what we described here. We split this class + +19 +00:00:52,650 --> 00:00:55,470 +into a Person class, and the Phone Number class. + +20 +00:00:55,470 --> 00:00:57,440 +And then we establish a use relation, so we + +21 +00:00:57,440 --> 00:00:59,470 +have a reference of the phone number class into + +22 +00:00:59,470 --> 00:01:01,960 +this class. And by separating the telephone number behavior + +23 +00:01:01,960 --> 00:01:04,680 +into its own class, I once more improved the + +24 +00:01:04,680 --> 00:01:06,980 +structure of the code, because now I have classes + +25 +00:01:06,980 --> 00:01:09,070 +that are more cohesive, and do exactly one thing. |