Index
A
- AAPL (Apple) / Stock quote connection pool
- abstract factory pattern / Abstract factory
- actions
- Adapter
- about / Adapter
- class, wrapping / Wrapping a class
- interface, wrapping / Wrapping an interface
- queue, implementing with list / Implementing a queue with a list
- anti-patterns / Anti-patterns
- appropriate structural pattern
- selecting / Selecting an appropriate structural pattern
- Automatic Reference Counting (ARC) / Delphi idioms – Creating and destroying an object, Smart pointers
B
- behavioral patterns
- about / Behavioral patterns
- blackboard pattern / Behavioral patterns
- chain of responsibility pattern / Behavioral patterns
- command pattern / Behavioral patterns
- interpreter pattern / Behavioral patterns
- iterator pattern / Behavioral patterns
- mediator pattern / Behavioral patterns
- memento pattern / Behavioral patterns
- null object pattern / Behavioral patterns
- observer pattern / Behavioral patterns
- servant pattern / Behavioral patterns
- specification pattern / Behavioral patterns
- strategy pattern / Behavioral patterns
- template method pattern / Behavioral patterns
- visitor pattern / Behavioral patterns
- best practices, exceptions
- not raising, in destructors / Don't raise exceptions in destructors
- API boundaries, limiting to / Exceptions should not cross API boundaries
- thread boundaries, limiting to / Exceptions should not cross thread boundaries
- selective catching / Catching exceptions selectively
- ignoring, avoiding / Don't ignore exceptions
- exception logger, using / Using an exception logger
- try..finally statement, simplifying / Simplifying try..finally
- big ball of mud / Anti-patterns
- blob / Anti-patterns
- bridge pattern
- about / Bridge
- demonstrating / Bridged painting
- builder pattern
- about / Builder
- Fluent interfaces / Idioms – Fluent interfaces
C
- command-based editor
- about / Command-based editor
- commands, creating / Creating commands
- commands / Commands
- invoker / Invoker
- client / Client
- macros / Macros
- cloning / Cloning
- command pattern
- about / Command
- command-based editor / Command-based editor
- Comma Separated Values (CSV) / Dependency injection
- composite pattern
- about / Composite, Child management
- child management / Child management
- concurrency patterns
- about / Concurrency patterns
- active object pattern / Concurrency patterns
- binding properties pattern / Concurrency patterns
- blockchain pattern / Concurrency patterns
- compute kernel pattern / Concurrency patterns
- double-checked locking pattern / Concurrency patterns
- event-based asynchronous pattern / Concurrency patterns
- future pattern / Concurrency patterns
- guarded suspension pattern / Concurrency patterns
- join pattern / Concurrency patterns
- lock pattern / Concurrency patterns
- lock striping pattern / Concurrency patterns
- messaging design pattern (MDP) / Concurrency patterns
- monitor object pattern / Concurrency patterns
- pipeline pattern / Concurrency patterns
- optimistic initialization pattern / Concurrency patterns
- reactor pattern / Concurrency patterns
- read-write lock pattern / Concurrency patterns
- scheduler pattern / Concurrency patterns
- thread pool pattern / Concurrency patterns
- thread-specific storage pattern / Concurrency patterns
- constructor injection / Wrapping up
- copy and paste programming / Anti-patterns
- creational patterns
- about / Creational patterns
- abstract factory pattern / Creational patterns
- builder pattern / Creational patterns
- dependency injection pattern / Creational patterns
- factory method pattern / Creational patterns
- lazy initialization pattern / Creational patterns
- multiton pattern / Creational patterns
- object pool pattern / Creational patterns
- prototype pattern / Creational patterns
- resource acquisition is initialization pattern (RAII) / Creational patterns
- singleton pattern / Creational patterns
D
- data modules / Data modules
- debugging approaches / Debugging
- declarative programming / Functional programming
- Decorator pattern
- about / Decorator
- streams, decorating / Decorating streams
- helpers / Delphi idioms – helpers
- Delphi
- about / Lateral thinking
- parallel programming / Delphi idioms – parallel programming
- data modules / Data modules
- Delphi idioms, prototype pattern
- Assign method / Delphi idioms – Assign and AssignTo
- AssignTo method / Delphi idioms – Assign and AssignTo
- Dependency injection (DI) pattern
- about / Dependency injection
- migrating, from classes to interfaces / From classes to interfaces
- factory method, using / Using a factory method
- dependency inversion principle / Gang of Four started it all
- deque / Implementing a queue with a list
- design for type safety approach / Child management
- design for uniformity approach / Child management
- design patterns
- about / Patterns in programming
- criticism / Criticism
- design principles
- about / Design principles
- SOLID / SOLID
- don't repeat yourself principle (DRY) / Don't repeat yourself
- double-checked locking
- using / Double-checked locking
E
- equality comparer / Delphi idioms – comparers and hashers
- EurekaLog
- reference / Using an exception logger
- event-driven programming
- about / Event-driven programming
- events application / Event-driven programming
- exception logger
- using / Using an exception logger
- exceptions
- about / Exceptions
- throwing / Exceptions
- handling / Exceptions
- reserving, for abnormal conditions / Reserving exceptions for abnormal conditions
- problem, detecting / Name the problem, not the thrower
F
- facade pattern / Facade
- factory method pattern
- about / Factory method
- painting application, example / Painter
- modernizing / Modernizing the factory method pattern
- flyweight pattern
- about / Flyweight
- string interning / String interning
- example / A practical example
- comparers / Delphi idioms – comparers and hashers
- hashers / Delphi idioms – comparers and hashers
- form inheritance
- about / Form inheritance
- using / Form inheritance
- frame
- functional programming / Functional programming
- future pattern / Future
G
- Gang of Four
- about / Gang of Four started it all
- don't inherit—compose philosophy / Don't inherit – compose!
- git-bisect tool
- reference / Debugging
- GpSQLBuilder project
- reference / Idioms – Fluent interfaces
- graphical user interface (GUI) / Bridged painting
H
- hasher / Delphi idioms – comparers and hashers
- Highlander problem / Delphi idioms – helpers
I
- idioms / Patterns in programming
- injection / Abstract factory
- interfaces / Abstract factory
- Inversion Of Control (IOC) / Dependency injection
- invoker / Actions
- iterator pattern
- about / Iterator
- iterating, with for..in / Delphi idioms – iterating with for..in
- custom enumerators, implementing / Implementing custom enumerators
- iterator interface, using / Using an iterator interface
J
- JvExcept
- reference / Using an exception logger
K
- KISS principle / KISS and YAGNI
L
- lazy initialization pattern
- about / Lazy initialization
- Spring, using / Using Spring
- LiveBindings mechanism
- using / LiveBindings
- locking pattern
- about / Lock
- locking pattern / Lock
- implementing / Custom locking mechanism
- Lock (custom) button / Custom locking mechanism
- lock striping pattern
- about / Lock striping
- single bit locks / Single bit locks
- bitwise operators, using / Delphi idioms – bitwise operators
M
- MadExcept
- reference / Using an exception logger
- marker interface pattern
- about / Marker interface
- attributes, declaring / Delphi idioms – attributes
- re-implementing, with attributes / Markers and attributes
- memento pattern / Memento
- messaging pattern
- using / Messaging
- Windows messages / Windows messages
- Queue option / Queue and Synchronize
- Synchronize option / Queue and Synchronize
- queue option / Queue and Synchronize
- polling process / Polling
- method injection / Wrapping up
- mock object / Proxy
- MSFT (Microsoft) / Stock quote connection pool
- multiple readers, exclusive writer (MREW) / Readers-writer lock
- multiple readers, single writer (MRSW) / Readers-writer lock
- multithreaded programming
- in Delphi / Delphi idioms – parallel programming
N
- null iterator / Iterator
- null object pattern / Null object
O
- object
- object-oriented programming (OOP) / Patterns in programming, Dependency injection
- object pool
- about / Object pool
- stock quote connection pool / Stock quote connection pool
- observer pattern
- about / Observer
- using, in Spring / Observing with Spring
- OmniThreadLibrary
- optimistic locking
- about / Optimistic locking
- using / Optimistic locking
P
- patterns
- about / Patterns in programming
- uses / Patterns are useful
- taxonomy / Pattern taxonomy
- creational patterns / Pattern taxonomy
- behavioral patterns / Pattern taxonomy
- structural patterns / Pattern taxonomy
- concurrency patterns / Pattern taxonomy
- pipeline pattern
- about / Pipeline
- web spider example / Web spider
- pointer to implementation (PIMPL) / Bridge
- principles / Design principles
- property injection / Wrapping up
- protection proxy / Proxy
- prototype pattern
- about / Prototype
- records, cloning / Cloning records
- objects, cloning / Cloning objects
- Delphi idioms / Delphi idioms – Assign and AssignTo
- serialization / Serialization
- Proxy
- about / Proxy
- components, replacing in runtime / Delphi idioms – replacing components in runtime
- smart pointers / Smart pointers
- unit testing, with mock objects / Unit testing with mock objects
R
- readers-writer lock
- about / Readers-writer lock
- implementations, comparing / Comparing reader-writer implementations
- receiver / Actions
- remoting proxy / Proxy
- robust iterators / Iterator
- run-time type information (RTTI) / Delphi idioms – attributes, Unit testing with mock objects
S
- singleton pattern
- about / Singleton
- creating / Singleton
- NewInstance methods, overriding / NewInstance
- lateral thinking / Lateral thinking
- single writer, multiple readers (SWMR) / Readers-writer lock
- SOLID principles
- Spring4D library
- reference / Patterns are useful, Functional programming
- staged processing / Pipeline
- state machines
- reference / State
- state pattern
- about / State
- string, unquoting / Unquoting a string
- structural patterns
- about / Structural patterns
- adapter pattern / Structural patterns
- bridge pattern / Structural patterns
- composite pattern / Structural patterns
- decorator pattern / Structural patterns
- extension object pattern / Structural patterns
- facade pattern / Structural patterns
- flyweight pattern / Structural patterns
- front controller pattern / Structural patterns
- marker pattern / Structural patterns
- module pattern / Structural patterns
- proxy pattern / Structural patterns
- twin pattern / Structural patterns
T
- template method pattern
- about / Template method
- average value, calculating / Calculating the average value
- Inversion Of Control (IOC) / Inversion of control
- thread pool pattern
- about / Thread pool
- TThreadPool / Idiosyncrasies of Delphi's TThreadPool
V
- visitor pattern / Visitor
W
- web spider example, pipeline pattern
- filter stage / Filter stage
- downloader stage / Downloader stage
- parser stage / Parser stage
Y
- YAGNI / KISS and YAGNI