Monday, February 16, 2015

Software Engineering

Making a list of some software engineering concepts and principles ive come across.

  • Decorator (wrapper where API of object being used is same as exposed)
  • Adaptor (wrapper but where API of object being used is different from exposed API)
  • Singleton (static object, private constructor)
  • Factory (when e.g. one needs to create an Matrix of different types based on the type specified in the constructor e.g.). See this 
  • Inversion of control e.g. the same example i described above for factory can be better implemented when each Matrix type is implementing an interface (or extending virtual classes) and when the factory class's constructor is created, the concrete object is passed, and then appropriate functions can be called). See this
  • Definition of "static" keyword in C++: this keyword has 3 uses. limit scope within translation unit, retain value across function calls, do not be part of object instances

No comments:

Post a Comment