Design patterns from 《大话设计模式》 and some samples implemented by C#.
《大话设计模式》 中设计模式总结,示例代码是以 C# 写的,基于 .NET Core 如果要自己编译请下载安装 .NET Core SDK
对于一个类而言,应该仅有一个引起它变化的原因
如果一个类承担的职责过多,就等于把这些职责耦合再一起,一个职责的变化可能会削弱或者抑制这个类完全其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。
开放-封闭原则是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
对于扩展开放,对于更改封闭
高层模块不应该依赖低层模式,两个都应该依赖抽象。
抽象不应该依赖细节,细节应该依赖于抽象。基于接口编程。
子类型必须能够替换掉它们的父类型
使用多个隔离的接口,比使用单个接口好,建立最小的接口
一个接口只负责一个功能
如果两个类不必彼此通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。
类的结构设计上,每一个类都应当尽量降低成员的访问权限
类之间的耦合越弱,越有利于复用,一个处在弱耦合的类别修改,不会对有关系的类造成波及
设计模式大体上可分为三类:
简单工厂(SimpleFactory)
抽象工厂(AbstractFactory)
工厂方法(FactoryMethod)
建造者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)
适配器模式(Adapter)
桥接模式(Bridge)
组合模式(Composite)
装饰(者/器)模式(Decorator)
外观/门面模式(Facade)
享元模式(Flyweight)
代理模式(Proxy)
观察者模式(Observer)
模板方法(TemplateMethod)
命令模式(Command)
状态模式(State)
职责链模式(Chain of Responsibility)
解释器模式(Interpreter)
中介者模式(Mediator)
访问者模式(Visitor)
备忘录模式(Memento)
迭代器模式(Iterator)
策略模式(Strategy)