{'fraction_non_alphanumeric': 0.014492753623188406, 'fraction_numerical': 0.0, 'mean_word_length': 5.556962025316456, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, '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}}
Towards better programming-a taxonomy and model of object oriented mechanisms

The concepts and mechanisms of abstraction and polymorphism are usually the foundation on which programmers build their skills in an object oriented language. Along the way the programmer adopts certain mechanisms that are used in preference to others, which he understands and feels most comfortable using. This practice often mitigates against considering other mechanisms offered by the language, and against switching to a different more appropriate language. In this paper we propose a taxonomy of object-oriented mechanisms, and develop a practical model which presents the mechanisms in a uniform and simple way via a standard set of programming elements and diagrams. From the standpoint of abstraction and polymorphism, we consider inheritance, interfaces, delegates and generics. Together with comparative tables and summaries, the model can assist a programmer to use higher order abstraction and ultimately lead to better programming practices.