All Projects → phastmike → vala-design-patterns-for-humans

phastmike / vala-design-patterns-for-humans

Licence: other
A Vala version of "Design Patterns for Humans"

Programming Languages

vala
323 projects
Makefile
30231 projects

Projects that are alternatives of or similar to vala-design-patterns-for-humans

clean-ts-api
API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles
Stars: ✭ 43 (+186.67%)
Mutual labels:  design-patterns
OOP-Design-Patterns
MET CS665 - OOP Design Patterns Code Examples
Stars: ✭ 74 (+393.33%)
Mutual labels:  design-patterns
design-patterns
Simple examples of Design Patterns with PHP Examples
Stars: ✭ 75 (+400%)
Mutual labels:  design-patterns
angular-atomic-app
Angular 5 app built on atomic web design principles
Stars: ✭ 12 (-20%)
Mutual labels:  design-patterns
Study-Notes
🤔💡 😃 😎 Algorithms, Data Structures, Design Patterns
Stars: ✭ 56 (+273.33%)
Mutual labels:  design-patterns
design-patterns-php7
Design Patterns com PHP 7: Desenvolva com as melhores soluções. Repositório com os exemplos de código do livro. Repository with the code examples in the book.
Stars: ✭ 51 (+240%)
Mutual labels:  design-patterns
design-patterns-swift
Design Pattern Examples in Swift
Stars: ✭ 95 (+533.33%)
Mutual labels:  design-patterns
mvc-tree
🌳 A chronological visualization of the family of MVC patterns.
Stars: ✭ 40 (+166.67%)
Mutual labels:  design-patterns
sherpa 41
Simple browser engine.
Stars: ✭ 31 (+106.67%)
Mutual labels:  design-patterns
design-pattern-examples-in-python
UML model and code examples of design patterns for Python. The model is created with Astah.
Stars: ✭ 27 (+80%)
Mutual labels:  design-patterns
objproxies
Proxies and wrappers for ordinary Python objects
Stars: ✭ 18 (+20%)
Mutual labels:  design-patterns
Design-Patterns
A collection of popular design patterns with video and text explanations
Stars: ✭ 159 (+960%)
Mutual labels:  design-patterns
here-we-go
Contains hundreds of samples for learning Go.
Stars: ✭ 93 (+520%)
Mutual labels:  design-patterns
BetterRepository
Better Enhanced Repository Pattern Implementation in .NET C#
Stars: ✭ 27 (+80%)
Mutual labels:  design-patterns
java-design-patterns
设计模式专题,共 23 种设计模式。GOF design patterns,implement of Java。
Stars: ✭ 32 (+113.33%)
Mutual labels:  design-patterns
IdeaSingletonInspection
Inspection for detecting of inappropriate use of Singleton pattern in Java
Stars: ✭ 14 (-6.67%)
Mutual labels:  design-patterns
vala
design-patterns-for-humans in Vala (programming language)
Stars: ✭ 52 (+246.67%)
Mutual labels:  design-patterns
ezyfox
Java library supports for reflection, generic, annotations parsing, bean management and object binding
Stars: ✭ 14 (-6.67%)
Mutual labels:  design-patterns
enterprise-applications-patterns
Collection of enterprise application patterns
Stars: ✭ 17 (+13.33%)
Mutual labels:  design-patterns
php-design-patterns
Learn how to implement the most important Design Patterns into your PHP application. This project uses PHP 8.1. it has examples for each Pattern and an Article explaining how to use them step by step, their advantages, and disadvantages.
Stars: ✭ 151 (+906.67%)
Mutual labels:  design-patterns

build

Adaptation of Design Pattern for Humans to Vala.

Just an adaptation from the PHP examples to Vala, no goal on discussing, questioning or improving the indicated code.

A Vala version of that same document is available here.

Numbering

1. Creational
  1. Simple Factory
  2. Factory Method 
  3. Abstract Factory
  4. Builder
  5. Prototype (See notes)
  6. Singleton
2. Structural
  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Flyweight
  7. Proxy
3. Behavioral
  1. Chain of Responsibilty
  2. Command
  3. Iterator (See notes)
  4. Mediator
  5. Memento
  6. Observer
  7. Visitor
  8. Strategy
  9. State
  10. Template Method

Use

Just do

    $ make

To run the programs, do:

    $ ./build/<name of the pattern>

Notes:

Object cloning is a bit controversial and there's no native clone method in GLib.Object class, so, to simplify, a clone method was added to the prototype example. The original PHP Iterator pattern example depends on SPL Iterable, so, in the Vala example I've used LibGee. This was done merely to recreate the PHP examples into runnable Vala code. I avoided dependencies but to simplify I added a libgee dependency to allow the use of HashMaps, ArrayLists and Iterables.

Dependencies:

- Valac
- GLib
- Libgee (0.8)

Tested on Fedora 23, 25, 27, 29 and 35.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].