chery

Cards (26)

  • Inheritance
    Use the keyword EXTEND to inherit other class, it is basically inheriting a class to another class
  • Parent Class
    Also called Super class or base class
  • Child Class
    Also called derived class or sub class
  • Interface
    Blueprint of a class, We use IMPLEMENT keywords to implement an interface in class. If the class implements the interface the class now called a CONCRETE CLASS. Also only public method are used in interface, and only handle methods with no attributes.
  • Design Pattern

    Solution to software design and also known as pre-made blueprints
  • Pattern
    High level solution where we don't have a exact sequence of actions to achieve a goal
  • Algorithm
    Need to follow step procedures to achieve a goal
  • The invention of Design Patterns
    First described by Christopher Alexander in Pattern Language: Towns, Buildings, Construction. In 1994, Erich Gamma, John Visslides, Ralph Johnson, and Richard Helm got the idea from Christopher to apply the patterns in programming. They published a book "Design Patterns: Elements of Reusable Object-Oriented Software" which had 23 features.
  • The Gang of Four (GoF) book

    The book by Erich Gamma, John Visslides, Ralph Johnson, and Richard Helm on Design Patterns
  • Why we need to learn Design Patterns

    • It is a toolkit of tried and tested solution in software design. It teaches you to solve problems using object oriented design. It enables better communication with developers.
  • Criticism of Design Patterns
    • Kludges for weak programming languages
    • Inefficient solutions
    • Unjustified used
  • Idioms
    The most basic and low level design patterns
  • Architectural Patterns

    The high level design patterns
  • 3 Categories of Design Patterns
    • Structural Patterns
    • Creational Patterns
    • Behavioral Patterns
  • Facade Pattern

    A structural design pattern that provides a simplified interface to a number of complex sets of subsystems. The facade is a wrapper that hides the interactions between these subsystems and makes it easy to use. The objective is to simplify the process or the function calls.
  • Decorator Pattern
    A structural design pattern that attaches additional responsibilities to a class dynamically using wrapper objects called decorators. The objective is to extend an object's behaviour dynamically using composition.
  • Factory Method Pattern
    A creational design pattern that creates a method in superclass and instantiates in subclass. The objective is to encapsulate the object logic to separate it from business logic.
  • Singleton Pattern
    A creational design pattern that ensures only one instance of an object exists and is accessible globally. The objective is to have more control over a global object.
  • Observer Pattern

    A behavioral design pattern that defines a one-to-many relationship between objects such that when the state of an object (publisher) changes, the other objects (subscribers) are notified.
  • Chain of Responsibility Pattern
    A behavioral design pattern that allows you to create a chain of objects, where each object in the chain has the ability to either handle a request or pass it on to the next object in the chain.
  • Scripting Languages
    Primarily used to build and automate tasks for websites and web applications while using an existing program. Useful for extracting information from a dataset.
  • Server-side Scripting
    Occurs on the back-end. Used to create dynamic pages and can access the file system residing at the webserver. A server-side environment that runs on a scripting language is a web server.
  • Client-side Scripting
    Executed on web browsers. Used to create visually appealing websites for users.
  • All scripting languages are programming languages, but not all programming languages are scripting languages.
  • Scripting Techniques
    • Text Processing
    • Automation
    • Modularity
    • Error Handling
    • Interfacing with APIs
    • Shell Scripting
    • Documentation and Comments
    • Version Control
    • Testing and Debugging
    • Optimization
  • Role of Scripting Languages
    • Automation
    • Rapid Prototyping
    • Glue Language
    • Web Development
    • Customization and Extension