Section 1 : Introduction
|
Lecture 1 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM |
Section 2 : The SOLID Design Principles
|
Lecture 1 | Overview | 00:01:16 Duration |
|
Lecture 2 | Single Responsibility Principle | 00:07:30 Duration |
|
Lecture 3 | Open-Closed Principle | 00:17:24 Duration |
|
Lecture 4 | Liskov Substitution Principle | 00:06:37 Duration |
|
Lecture 5 | Interface Segregation Principle | 00:06:33 Duration |
|
Lecture 6 | Dependency Inversion Principle | 00:11:12 Duration |
|
Lecture 7 | Summary |
Section 3 : Builder
|
Lecture 1 | Gamma Categorization | 00:03:37 Duration |
|
Lecture 2 | Overview | 00:01:44 Duration |
|
Lecture 3 | Life Without Builder | 00:03:35 Duration |
|
Lecture 4 | Builder | 00:09:06 Duration |
|
Lecture 5 | Fluent Builder | 00:01:17 Duration |
|
Lecture 6 | Fluent Builder Inheritance with Recursive Generics | 00:12:37 Duration |
|
Lecture 7 | Functional Builder | 00:10:20 Duration |
|
Lecture 8 | Faceted Builder | 00:11:11 Duration |
|
Lecture 9 | Summary | 00:00:58 Duration |
Section 4 : Factories
|
Lecture 1 | Overview | 00:02:22 Duration |
|
Lecture 2 | Point Example | 00:04:38 Duration |
|
Lecture 3 | Factory Method | 00:05:03 Duration |
|
Lecture 4 | Asynchronous Factory Method | 00:05:02 Duration |
|
Lecture 5 | Factory | 00:02:59 Duration |
|
Lecture 6 | Inner Factory | 00:05:42 Duration |
|
Lecture 7 | Abstract Factory | 00:11:22 Duration |
|
Lecture 8 | Abstract Factory and OCP | 00:09:52 Duration |
|
Lecture 9 | Summary | 00:01:05 Duration |
Section 5 : Prototype
|
Lecture 1 | Overview | 00:01:59 Duration |
|
Lecture 2 | ICloneable is Bad | 00:07:37 Duration |
|
Lecture 3 | Copy Constructors | 00:03:56 Duration |
|
Lecture 4 | Explicit Deep Copy Interface | 00:02:35 Duration |
|
Lecture 5 | Prototype Inheritance | 00:09:06 Duration |
|
Lecture 6 | Copy Through Serialization | 00:20:25 Duration |
|
Lecture 7 | Summary | 00:01:08 Duration |
Section 6 : Singleton
|
Lecture 1 | Overview | 00:02:44 Duration |
|
Lecture 2 | Singleton Implementation | 00:08:41 Duration |
|
Lecture 3 | Testability Issues | 00:07:22 Duration |
|
Lecture 4 | Singleton in Dependency Injection | 00:08:58 Duration |
|
Lecture 5 | Monostate | 00:03:46 Duration |
|
Lecture 6 | Per-Thread Singleton | 00:04:25 Duration |
|
Lecture 7 | Ambient Context | 00:12:26 Duration |
|
Lecture 8 | Summary | 00:02:15 Duration |
Section 7 : Adapter
|
Lecture 1 | Overview | 00:02:36 Duration |
|
Lecture 2 | Vector_Raster Demo | 00:08:36 Duration |
|
Lecture 3 | Adapter Caching | 00:06:04 Duration |
|
Lecture 4 | Generic Value Adapter | 00:25:19 Duration |
|
Lecture 5 | Adapter in Dependency Injection | 00:09:07 Duration |
|
Lecture 6 | Summary | 00:01:11 Duration |
Section 8 : Bridge
|
Lecture 1 | Overview | 00:02:50 Duration |
|
Lecture 2 | Bridge | 00:09:50 Duration |
|
Lecture 3 | Summary | 00:01:33 Duration |
Section 9 : Composite
|
Lecture 1 | Overview | 00:01:53 Duration |
|
Lecture 2 | Geometric Shapes | 00:07:33 Duration |
|
Lecture 3 | Neural Networks | 00:08:00 Duration |
|
Lecture 4 | Composite Specification | 00:05:59 Duration |
|
Lecture 5 | Summary | 00:01:11 Duration |
Section 10 : Decorator
|
Lecture 1 | Overview | 00:02:34 Duration |
|
Lecture 2 | Custom String Builder | 00:06:19 Duration |
|
Lecture 3 | Adapter-Decorator | 00:06:34 Duration |
|
Lecture 4 | Structural | |
|
Lecture 5 | Multiple Inheritance with Interfaces | 00:08:40 Duration |
|
Lecture 6 | Multiple Inheritance with Default Interface Members | 00:07:45 Duration |
|
Lecture 7 | Dynamic Decorator Composition | 00:07:39 Duration |
|
Lecture 8 | Detecting Decorator Cycles | 00:22:03 Duration |
|
Lecture 9 | Static Decorator Composition | 00:09:30 Duration |
|
Lecture 10 | Decorator in Dependency Injection | 00:06:11 Duration |
|
Lecture 11 | Summary | 00:02:02 Duration |
Section 11 : Façade
|
Lecture 1 | Overview | 00:03:09 Duration |
|
Lecture 2 | Façade | 00:07:59 Duration |
|
Lecture 3 | Summary | 00:01:25 Duration |
Section 12 : Flyweight
|
Lecture 1 | Overview | 00:05:24 Duration |
|
Lecture 2 | Repeating User Names | 00:12:29 Duration |
|
Lecture 3 | Text Formatting | 00:08:53 Duration |
|
Lecture 4 | Summary | 00:00:59 Duration |
Section 13 : Proxy
|
Lecture 1 | Overview | 00:03:12 Duration |
|
Lecture 2 | Protection Proxy | 00:03:11 Duration |
|
Lecture 3 | Property Proxy | 00:09:24 Duration |
|
Lecture 4 | Value Proxy | 00:12:05 Duration |
|
Lecture 5 | Composite Proxy_ SoA_AoS | 00:11:30 Duration |
|
Lecture 6 | Composite Proxy with Array-Backed Properties | 00:06:42 Duration |
|
Lecture 7 | Dynamic Proxy for Logging | 00:11:50 Duration |
|
Lecture 8 | Proxy vs | 00:01:27 Duration |
|
Lecture 9 | ViewModel | 00:08:42 Duration |
|
Lecture 10 | Bit Fragging | 00:25:04 Duration |
|
Lecture 11 | Summary | 00:00:55 Duration |
Section 14 : Chain of Responsibility
|
Lecture 1 | Overview | 00:03:33 Duration |
|
Lecture 2 | Command Query Separation | 00:01:28 Duration |
|
Lecture 3 | Method Chain | 00:12:15 Duration |
|
Lecture 4 | Broker Chain | 00:13:51 Duration |
|
Lecture 5 | Summary | 00:01:18 Duration |
Section 15 : Command
|
Lecture 1 | Overview | 00:03:07 Duration |
|
Lecture 2 | Command | 00:07:47 Duration |
|
Lecture 3 | Undo Operations | 00:06:05 Duration |
|
Lecture 4 | Composite Command | 00:12:11 Duration |
|
Lecture 5 | Summary | 00:01:09 Duration |
Section 16 : Interpreter
|
Lecture 1 | Overview | 00:04:00 Duration |
|
Lecture 2 | Handmade Interpreter_ Lexing | |
|
Lecture 3 | Handmade Interpreter_ Parsing | 00:12:05 Duration |
|
Lecture 4 | ANTLR | 00:02:44 Duration |
|
Lecture 5 | Summary | 00:01:03 Duration |
Section 17 : Iterator
|
Lecture 1 | Overview | 00:01:42 Duration |
|
Lecture 2 | Iterator Object | 00:11:49 Duration |
|
Lecture 3 | Iterator Method | 00:06:57 Duration |
|
Lecture 4 | Iterators and Duck Typing | 00:04:06 Duration |
|
Lecture 5 | Array-Backed Properties | 00:05:51 Duration |
|
Lecture 6 | Summary | 00:01:29 Duration |
Section 18 : Mediator
|
Lecture 1 | Overview | 00:01:13 Duration |
|
Lecture 2 | Chat Room | 00:10:42 Duration |
|
Lecture 3 | Event Broker | 00:15:30 Duration |
|
Lecture 4 | Introduction to MediatR | 00:13:20 Duration |
|
Lecture 5 | Summary | 00:01:16 Duration |
Section 19 : Memento
|
Lecture 1 | Overview | |
|
Lecture 2 | Memento | 00:06:04 Duration |
|
Lecture 3 | Undo and Redo | 00:07:15 Duration |
|
Lecture 4 | Memento for Interop | 00:06:38 Duration |
|
Lecture 5 | Summary | 00:01:17 Duration |
Section 20 : Null Object
|
Lecture 1 | Overview | 00:01:58 Duration |
|
Lecture 2 | Null Object | 00:08:54 Duration |
|
Lecture 3 | Dynamic Null Object | 00:06:12 Duration |
|
Lecture 4 | Summary | 00:00:41 Duration |
Section 21 : Observer
|
Lecture 1 | Overview | 00:02:11 Duration |
|
Lecture 2 | Observer via the 'event' Keyword | 00:07:09 Duration |
|
Lecture 3 | Weak Event Pattern | 00:08:25 Duration |
|
Lecture 4 | Observer via Special Interfaces | 00:18:28 Duration |
|
Lecture 5 | Observable Collections | 00:09:45 Duration |
|
Lecture 6 | Bidirectional Observer | 00:14:48 Duration |
|
Lecture 7 | Property Dependencies | 00:13:30 Duration |
|
Lecture 8 | Declarative Event Subscriptions with Interfaces | 00:27:09 Duration |
|
Lecture 9 | Summary | 00:00:56 Duration |
Section 22 : State
|
Lecture 1 | Overview | 00:03:09 Duration |
|
Lecture 2 | Classic Implementation | 00:12:32 Duration |
|
Lecture 3 | Handmade State Machine | 00:06:45 Duration |
|
Lecture 4 | Switch-Based State Machine | 00:06:38 Duration |
|
Lecture 5 | Switch Expressions | 00:08:49 Duration |
|
Lecture 6 | State Machine with Stateless | 00:05:38 Duration |
|
Lecture 7 | Summary | 00:01:00 Duration |
Section 23 : Strategy
|
Lecture 1 | Overview | 00:01:50 Duration |
|
Lecture 2 | Dynamic Strategy | 00:08:25 Duration |
|
Lecture 3 | Static Strategy | 00:04:08 Duration |
|
Lecture 4 | Equality and Comparison Strategies | 00:07:41 Duration |
|
Lecture 5 | Summary | 00:00:27 Duration |
Section 24 : Template Method
|
Lecture 1 | Overview | 00:01:30 Duration |
|
Lecture 2 | Template Method | 00:07:23 Duration |
|
Lecture 3 | Functional Template Method | 00:03:38 Duration |
|
Lecture 4 | Summary | 00:00:46 Duration |
Section 25 : Visitor
|
Lecture 1 | Overview | 00:04:46 Duration |
|
Lecture 2 | Intrusive Expression Printing | 00:04:41 Duration |
|
Lecture 3 | Reflection-Based Printing | 00:09:10 Duration |
|
Lecture 4 | Classic Visitor (Double Dispatch) | |
|
Lecture 5 | Dynamic Visitor via the DLR | 00:07:11 Duration |
|
Lecture 6 | Acyclic Visitor | 00:12:01 Duration |
|
Lecture 7 | Summary | 00:01:09 Duration |
Section 26 : Course Summary
|
Lecture 1 | Creational Paterns Summary | 00:04:41 Duration |
|
Lecture 2 | Structural Patterns Summary | 00:06:13 Duration |
|
Lecture 3 | Behavioral Patterns Summary | 00:08:48 Duration |
|
Lecture 4 | End of Course | 00:00:54 Duration |
Section 27 : Bonus Lectures_ Related Concepts
|
Lecture 1 | An ASCII C# String | 00:13:59 Duration |
|
Lecture 2 | Continuation Passing Style | 00:11:07 Duration |
|
Lecture 3 | Local Inversion of Control | 00:17:43 Duration |
|
Lecture 4 | DI Container and Event Broker Integration | 00:10:12 Duration |
|
Lecture 5 | Beyond the Elvis Operator | 00:14:47 Duration |
|
Lecture 6 | CQRS and Event Sourcing | 00:26:42 Duration |
|
Lecture 7 | Bonus Lecture_ Other Courses at a Discount |
Section 28 : Bonus Lectures_ Functional Patterns in F#
|
Lecture 1 | Overview | 00:05:10 Duration |
|
Lecture 2 | Builder | 00:04:58 Duration |
|
Lecture 3 | Decorator | 00:04:40 Duration |
|
Lecture 4 | Factory | 00:08:15 Duration |
|
Lecture 5 | Interpreter | 00:09:58 Duration |
|
Lecture 6 | Strategy | |
|
Lecture 7 | Template Method | 00:10:06 Duration |
|
Lecture 8 | Summary | 00:02:55 Duration |