Mô tả

Course Overview

This course provides a comprehensive overview of Design Patterns in Swift from a practical perspective. This course in particular covers patterns with the use of:

  • The latest versions of the Swift programming language
  • Use of modern programming approaches: dependency injection, reactive programming and more
  • Use of modern developer tools
  • Discussions of pattern variations and alternative approaches

This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.

What are Design Patterns?

Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).

The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: Swift, C#, Java, PHP and even programming languages that aren't strictly object-oriented, such as JavaScript.

The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.

What Patterns Does This Course Cover?

This course covers all the GoF design patterns. In fact, here's the full list of what is covered:

  • SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
  • Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
  • Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template Method and Visitor

Who Is the Course For?

This course is for Swift developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way.

Presentation Style

This course is presented as a (very large) series of live demonstrations. All demos are single-file, so you can download the file attached to the lesson and run it in CLion, XCode or another IDE of your choice (or just on the command line).

This course does not use UML class diagrams; all of demos are live coding. I use Visual Studio Code for the demos.

Bạn sẽ học được gì

Yêu cầu

Nội dung khoá học

26 sections

Introduction

1 lectures
Introduction
05:35

SOLID Design Principles

7 lectures
Overview
00:52
Single Responsibility Principle
07:33
Open-Closed Principle
19:45
Liskov Substitution Principle
07:22
Interface Segregation Principle
08:41
Dependency Inversion Principle
10:32
Summary
02:26

Builder

7 lectures
Overview
01:20
Life Without Builder
03:20
Builder
09:10
Fluent Builder
02:29
Faceted Builder
08:28
Builder Coding Exercise
1 question
Summary
01:01

Factories

8 lectures
Overview
02:21
Point Example
03:18
Factory Method
03:54
Factory
02:48
Inner Factory
04:13
Abstract Factory
11:27
Factory Coding Exercise
1 question
Summary
01:04

Prototype

5 lectures
Overview
01:54
Copy Constructors
11:03
Explicit Deep Copy Interface
05:11
Prototype Coding Exercise
1 question
Summary
00:52

Singleton

7 lectures
Overview
02:33
Singleton Implementation
08:50
Testability Issues
06:10
Singleton in Dependency Injection
05:57
Monostate
04:52
Singleton Coding Exercise
1 question
Summary
01:04

Adapter

5 lectures
Overview
01:12
Vector/Raster Demo
09:30
Adapter Caching
07:48
Adapter Coding Exercise
1 question
Summary
00:56

Bridge

4 lectures
Overview
01:46
Bridge
07:19
Bridge Coding Exercise
1 question
Summary
00:21

Composite

5 lectures
Overview
01:22
Geometric Shapes
07:19
Neural Networks
09:58
Composite Coding Exercise
1 question
Summary
01:38

Decorator

7 lectures
Overview
01:21
Custom String Builder
05:38
Multiple Inheritance
03:20
Dynamic Decorator Composition
06:52
Static Decorator Composition
05:00
Decorator Coding Exercise
1 question
Summary
01:13

Façade

4 lectures
Overview
01:47
Façade
06:30
Façade Coding Exercise
1 question
Summary
00:42

Flyweight

5 lectures
Overview
01:58
Repeating User Names
08:15
Text Formatting
10:04
Flyweight Coding Exercise
1 question
Summary
00:36

Proxy

6 lectures
Overview
01:29
Protection Proxy
03:34
Property Proxy
05:11
Proxy vs. Decorator
01:27
Proxy Coding Exercise
1 question
Summary
00:38

Chain of Responsibility

6 lectures
Overview
02:16
Command Query Separation
01:28
Method Chain
11:36
Broker Chain
15:16
Chain of Responsibility Coding Exercise
1 question
Summary
00:45

Command

5 lectures
Overview
01:49
Command
07:51
Undo Operations
03:14
Command Coding Exercise
1 question
Summary
00:38

Interpreter

5 lectures
Overview
02:24
Handmade Interpreter: Lexing
09:40
Handmade Interpreter: Parsing
10:03
Interpreter Coding Exercise
1 question
Summary
00:31

Iterator

5 lectures
Overview
01:12
Iterator Object
13:12
Array-Backed Properties
07:08
Iterator Coding Exercise
1 question
Summary
00:44

Mediator

4 lectures
Overview
01:13
Chat Room
10:20
Mediator Coding Exercise
1 question
Summary
00:58

Memento

5 lectures
Overview
01:17
Memento
06:18
Undo and Redo
06:50
Memento Coding Exercise
1 question
Summary
00:33

Null Object

4 lectures
Overview
01:24
Null Object
06:44
Null Object Coding Exercise
1 question
Summary
01:02

Observer

6 lectures
Overview
01:09
Events
14:40
Property Observers
03:43
Handling Dependent Observable Properties
16:01
Observer Coding Exercise
1 question
Summary
00:47

State

4 lectures
Overview
01:27
Handmade State Machine
07:00
State Coding Exercise
1 question
Summary
00:54

Strategy

5 lectures
Overview
01:08
Dynamic Strategy
10:11
Static Strategy
03:17
Strategy Coding Exercise
1 question
Summary
00:29

Template Method

4 lectures
Overview
01:35
Template Method
07:33
Template Method Coding Exercise
1 question
Summary
00:22

Visitor

7 lectures
Overview
02:46
Intrusive Expression Printing
06:29
What is Dispatch?
02:17
Reflection-Based Printing
05:53
Classic Visitor (Double Dispatch)
09:24
Visitor Coding Exercise
1 question
Summary
01:01

Course Summary

5 lectures
Creational Patterns Summary
04:14
Structural Patterns Summary
03:06
Behavioral Patterns Summary
06:11
End of Course
01:08
Bonus Lecture: Other Courses at a Discount
00:03

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.