• SOLID architecture principles using simple C# examples


    转:http://www.codeproject.com/Articles/703634/SOLID-architecture-principles-using-simple-Csharp?msg=4729987#xx4729987xx

    http://www.codeproject.com/Articles/28309/Design-pattern-FAQ-Part-1-Training

    S stands for SRP (Single responsibility principle):- A class should take care of only one responsibility.

    O stands for OCP (Open closed principle):- Extension should be preferred over modification.

    L stands for LSP (Liskov substitution principle):- A parent class object should be able to refer child objects seamlessly during runtime polymorphism.

    I stands for ISP (Interface segregation principle):- Client should not be forced to use a interface if it does not need it.

    D stands for DIP (Dependency inversion principle) :- High level modules should not depend on low level modules but should depend on abstraction.

    There are three basic classifications of patterns Creational, Structural, and Behavioral patterns.

    Creational Patterns

    • Abstract Factory:- Creates an instance of several families of classes 
    • Builder: - Separates object construction from its representation 
    • Factory Method:- Creates an instance of several derived classes 
    • Prototype:- A fully initialized instance to be copied or cloned 
    • Singleton:- A class in which only a single instance can exist

    Note: - The best way to remember Creational pattern is by remembering ABFPS (Abraham Became First President of States).
    Structural Patterns

    • Adapter:-Match interfaces of different classes . 
    • Bridge:-Separates an object’s abstraction from its implementation. 
    • Composite:-A tree structure of simple and composite objects. 
    • Decorator:-Add responsibilities to objects dynamically. 
    • Façade:-A single class that represents an entire subsystem.
    • Flyweight:-A fine-grained instance used for efficient sharing. 
    • Proxy:-An object representing another object.

    • Mediator:-Defines simplified communication between classes.
    • Memento:-Capture and restore an object's internal state. 
    • Interpreter:- A way to include language elements in a program.
    • Iterator:-Sequentially access the elements of a collection. 
    • Chain of Resp: - A way of passing a request between a chain of objects.
    • Command:-Encapsulate a command request as an object. 
    • State:-Alter an object's behavior when its state changes. 
    • Strategy:-Encapsulates an algorithm inside a class. 
    • Observer: - A way of notifying change to a number of classes. 
    • Template Method:-Defer the exact steps of an algorithm to a subclass. 
    • Visitor:-Defines a new operation to a class without change.

  • 相关阅读:
    Python的四种常见数据结构比较
    LeetCode Notes_#53 Maximum Subarray
    LeetCode Notes_#38 Count and Say
    LeetCode Notes_#6 Zigzag Conversion
    LeetCode Notes_#5 Longest Palindromic Substring
    《美国纽约摄影学院摄影教材》
    《艺术的故事》
    《Don't make me think》
    《Geospatial Data Science Techniques and Applications》
    《程序员的自我修养:链接、装载与库(完整版).pdf》
  • 原文地址:https://www.cnblogs.com/fengye87626/p/4174298.html
Copyright © 2020-2023  润新知