Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/weihanli/designpatterns
DesignPatterns samples by CSharp《大话设计模式》 中设计模式总结/C#(.NET)代码
https://github.com/weihanli/designpatterns
csharp design-pattern design-patterns designpatterns dotnet dotnetcore oop patterns
Last synced: 3 days ago
JSON representation
DesignPatterns samples by CSharp《大话设计模式》 中设计模式总结/C#(.NET)代码
- Host: GitHub
- URL: https://github.com/weihanli/designpatterns
- Owner: WeihanLi
- License: mit
- Created: 2018-04-01T15:26:15.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2024-09-09T06:43:34.000Z (4 months ago)
- Last Synced: 2025-01-08T00:09:17.568Z (10 days ago)
- Topics: csharp, design-pattern, design-patterns, designpatterns, dotnet, dotnetcore, oop, patterns
- Language: C#
- Homepage:
- Size: 62.5 MB
- Stars: 149
- Watchers: 7
- Forks: 54
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DesignPatterns
## Intro 简介
Design patterns from 《大话设计模式》 and some samples implemented by C#.
《大话设计模式》 中设计模式总结,示例代码是用 C# 写的,如果要自己编译请[下载安装](https://get.dot.net) .NET SDK
## 设计模式设计原则
- 单一职责原则
> 对于一个类而言,应该仅有一个引起它变化的原因
>
> 如果一个类承担的职责过多,就等于把这些职责耦合再一起,一个职责的变化可能会削弱或者抑制这个类完全其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。- 开放-封闭原则
> 开放-封闭原则是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
>
> 对于扩展开放,对于更改封闭- 依赖倒转原则
> - 高层模块不应该依赖低层模式,两个都应该依赖抽象。
> - 抽象不应该依赖细节,细节应该依赖于抽象。基于接口编程。- 里氏代换原则
> 子类型必须能够替换掉它们的父类型
- 接口隔离原则
> 使用多个隔离的接口,比使用单个接口好,建立最小的接口
>
> 一个接口只负责一个功能- 迪米特法则
> 如果两个类不必彼此通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。
>
> 类的结构设计上,每一个类都应当尽量降低成员的访问权限
>
> 类之间的耦合越弱,越有利于复用,一个处在弱耦合的类别修改,不会对有关系的类造成波及## Overview 概览
设计模式大体上可分为三类:
- [创建型模式(Create)](./CreatePattern)
1. [简单工厂(SimpleFactory)](./CreatePattern/SimpleFactoryPattern)
1. [抽象工厂(AbstractFactory)](./CreatePattern/AbstractFactoryPattern)
1. [工厂方法(FactoryMethod)](./CreatePattern/FactoryMethodPattern)
1. [建造者模式(Builder)](./CreatePattern/BuilderPattern)
1. [原型模式(Prototype)](./CreatePattern/PrototypePattern)
1. [单例模式(Singleton)](./CreatePattern/SingletonPattern)- [结构型模式(Structure)](./StructurePattern)
1. [适配器模式(Adapter)](./StructurePattern/AdapterPattern)
1. [桥接模式(Bridge)](./StructurePattern/BridgePattern)
1. [组合模式(Composite)](./StructurePattern/CompositePattern)
1. [装饰(者/器)模式(Decorator)](./StructurePattern/DecoratorPattern)
1. [外观/门面模式(Facade)](./StructurePattern/FacadePattern)
1. [享元模式(Flyweight)](./StructurePattern/FlyweightPattern)
1. [代理模式(Proxy)](./StructurePattern/ProxyPattern)- [行为型模式(Behavior)](./BehaviorPattern)
1. [观察者模式(Observer)](./BehaviorPattern/ObserverPattern)
1. [模板方法(TemplateMethod)](./BehaviorPattern/TemplateMethodPattern)
1. [命令模式(Command)](./BehaviorPattern/CommandPattern)
1. [状态模式(State)](./BehaviorPattern/StatePattern)
1. [职责链模式(Chain of Responsibility)](./BehaviorPattern/ChainOfResponsibilityPattern)
1. [解释器模式(Interpreter)](./BehaviorPattern/InterpreterPattern)
1. [中介者模式(Mediator)](./BehaviorPattern/MediatorPattern)
1. [访问者模式(Visitor)](./BehaviorPattern/VisitorPattern)
1. [备忘录模式(Memento)](./BehaviorPattern/MementoPattern)
1. [迭代器模式(Iterator)](./BehaviorPattern/IteratorPattern)
1. [策略模式(Strategy)](./BehaviorPattern/StrategyPattern)## Contact
Contact me if you need: