<commit_before>---
title: "Fundamental Object Oriented Design principles (Part 2): Encapsulation"
excerpt_separator: "<!--more-->"
categories:
  - Design Patterns
tags:
  - Delphi
  
sidebar:
  nav: oodesignprinciples  
---
A look at Encapsulation as provided by Object Oriented languages. 

This is the second post in a series on Object Oriented design. In order to fully understand why the study of Design Patterns is important we need to start by looking at what good Object Oriented (OO) software design is. Object Oriented languages offer some unique features that facilitate good design.

These design principles can be applied to non-objected oriented languages. However, applying OO concepts to non-OO languages takes some more effort.
<!--more-->

This article assumes that you understand at least one object oriented programming language. C++, Delphi, C# and Java are examples of object oriented languages, Javascript is an object-based language (it uses object prototyping instead of classing). If you are unsure: a true object oriented language has classes, objects and very often interfaces. 
<commit_msg>Capitalization. Shorter descr for listing<commit_after>---
title: "Fundamental Object Oriented Design Principles (Part 2): Encapsulation"
excerpt_separator: "<!--more-->"
categories:
  - Design Patterns
tags:
  - Delphi
  
sidebar:
  nav: oodesignprinciples  
---
A look at Encapsulation as provided by Object Oriented languages and how it combines data and functionality. 
<!--more-->

This is the second post in a series on Object Oriented design. In order to fully understand why the study of Design Patterns is important we need to start by looking at what good Object Oriented (OO) software design is. Object Oriented languages offer some unique features that facilitate good design.

These design principles can be applied to non-objected oriented languages. However, applying OO concepts to non-OO languages takes some more effort.

This article assumes that you understand at least one object oriented programming language. C++, Delphi, C# and Java are examples of object oriented languages, Javascript is an object-based language (it uses object prototyping instead of classing). If you are unsure: a true object oriented language has classes, objects and very often interfaces. 

{'fraction_non_alphanumeric': 0.055049848287819676, 'fraction_numerical': 0.0008669267446900737, 'mean_word_length': 4.534772182254197, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2620983', 'n_tokens_mistral': 569, 'n_tokens_neox': 530, 'n_words': 321}