1
00:00:00,540 --> 00:00:02,970
This course presented several concepts.

2
00:00:02,970 --> 00:00:06,910
First, use facade to provide a single

3
00:00:06,910 --> 00:00:09,515
interface to lower‑level worker classes.

4
00:00:09,515 --> 00:00:12,070
Now in this course, we talked about these

5
00:00:12,070 --> 00:00:17,800
classes as being services. Use a facade

6
00:00:17,800 --> 00:00:19,790
interface, it's a best practice. Providing

7
00:00:19,790 --> 00:00:22,380
an interface for this facade to implement

8
00:00:22,380 --> 00:00:25,540
means future implementations of them can

9
00:00:25,540 --> 00:00:28,680
be made when sub‑systems below the facade

10
00:00:28,680 --> 00:00:31,500
change. And in this way, we may not need

11
00:00:31,500 --> 00:00:34,020
to change the code that calls the facades

12
00:00:34,020 --> 00:00:37,270
at all. They can be used to effectively

13
00:00:37,270 --> 00:00:40,670
mask giant classes. Recall, we saw this

14
00:00:40,670 --> 00:00:43,870
when we reduced our big ball of mud from

15
00:00:43,870 --> 00:00:46,280
many, many methods down into just three

16
00:00:46,280 --> 00:00:49,610
with the facade we created. And the facade

17
00:00:49,610 --> 00:00:51,960
becomes testable, even if testing a big

18
00:00:51,960 --> 00:00:55,120
ball of mud is daunting. I hope that the

19
00:00:55,120 --> 00:00:57,580
facade pattern provides as much value to

20
00:00:57,580 --> 00:01:00,000
you as it has to me over the years in my code.

