【Design Pattern 23种经典设计模式源码大全】C/Java/Go/JS/Python/TS等不同语言实现
Design Pattern 23种经典设计模式源码详解
经典设计模式源码详解,用不同语言来实现,包括Java/JS/Python/TypeScript/Go等。结合实际场景,充分注释说明,每一行代码都经过检验,确保可靠。
设计模式是一个程序员进阶高级的必然选择,不懂设计模式,就像写文章不懂得层次,盖房子没有结构。只有充分懂得设计之道,才能真正设计出良好的软件和系统来。
每一种语言都有自己的特色,设计模式首推用Java语言来实现,因为Java相对最全面,也非常规整。
其他语言有自己的优势,并不需要像Java那么啰嗦就可以实现良好的设计模式。因此通过不同语言之间的对比,可以更好地理解各种语言的差异,真正理解编程之道。
详细请访问:https://github.com/microwind/design-pattern
设计模式结构图
设计模式例子
每一个例子都经过精心设计,提供UML设计图,作用说明以及创建步骤。
源码例子
创建型
-
工厂模式(Factory Pattern) ,由工厂类提供统一的创建对象的方法。 Java | JavaScript | Python | TypeScript | Go
-
抽象工厂模式(Abstract Factory Pattern) ,是一个超级工厂,用来创建其他工厂方法。 Java | JavaScript | Python | TypeScript | Go
-
原型模式(Prototype Pattern) ,利用clone()复制已有对象的实例。 Java | JavaScript | Python | TypeScript | Go
-
建造者模式(Builder Pattern) ,利用多个简单对象逐步构建一个复杂对象,类似建造房子。 Java | JavaScript | Python | TypeScript | Go
-
单例模式(Singleton Pattern) ,保证创建的类只有一个实例,并提供一个访问该实例的全局节点。 Java | JavaScript | Python | TypeScript | Go
结构型
-
适配器模式(Adapter Pattern) ,为两个不兼容的接口提供专门兼容方案。 Java | JavaScript | Python | TypeScript | Go
-
桥接模式(Bridge Pattern) ,将类拆分为抽象和实现两个独立的层次结构进行解耦。 Java | JavaScript | Python | TypeScript | Go
-
组合模式(Composite Pattern) ,依据树形结构来组合对象,用不同组件来构建某个部分或整体对象。 Java | JavaScript | Python | TypeScript | Go
-
装饰器模式(Decorator Pattern) ,将对象放入到一个特殊封装的对象中,赋予其新的能力。 Java | JavaScript | Python | TypeScript | Go
-
外观模式(Facade Pattern) ,给现有的系统添加一个高层接口,隐藏子系统的复杂性。 Java | JavaScript | Python | TypeScript | Go
-
享元模式(Flyweight Pattern) ,通过共享多个对象的相同状态,让有限的内存容量载入更多对象。 Java | JavaScript | Python | TypeScript | Go
-
代理模式(Proxy Pattern) ,用一个类来代理另一个类或几个类的功能。 Java | JavaScript | Python | TypeScript | Go
-
过滤器模式(Filter Pattern) ,使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来。 Java | JavaScript | Python | TypeScript | Go
行为型
-
策略模式(Strategy Pattern) ,将每一个算法策略封装到接口中,根据需要设定策略,使具体实现和策略解耦。 Java | JavaScript | Python | TypeScript | Go
-
观察者模式(Observer Pattern) ,当主题对象的状态发生改变时,所有依赖对象都得到通知并被自动更新。 Java | JavaScript | Python | TypeScript | Go
-
迭代器模式(Iterator Pattern) ,给数据对象构建一套按顺序访问集合对象元素的方式。 Java | JavaScript | Python | TypeScript | Go
-
模板方法模式(Template Method Pattern) ,定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中。 Java | JavaScript | Python | TypeScript | Go
-
责任链模式(Chain of Responsibility Pattern) ,为请求创建了一个接收者对象的链,请求沿着处理者链进行发送和处理。 Java | JavaScript | Python | TypeScript | Go
-
命令模式(Command Pattern) ,把请求以命令的形式包裹在对象中,并传给调用对象。 Java | JavaScript | Python | TypeScript | Go
-
备忘录模式(Memento Pattern) ,将对象的状态捕捉住,并以备忘录的形式存储起来,以便合适的时候还原。 Java | JavaScript | Python | TypeScript | Go
-
状态模式(State Pattern) ,类的行为是基于它的状态改变的,不同的状态下有不同的行为。 Java | JavaScript | Python | TypeScript | Go
-
访问者模式(Visitor Pattern) ,封装访问者类,把各元素类的操作集合起来,目的是将数据结构与数据操作分离。 Java | JavaScript | Python | TypeScript | Go
-
中介者模式(Mediator Pattern) ,它用一个中介对象来封装一系列的动作,以让对象之间进行交流。 Java | JavaScript | Python | TypeScript | Go
-
解释器模式(Interpreter Pattern) ,实现了一个表达式接口,并能解释特定的上下文里面的变量和语句。 Java | JavaScript | Python | TypeScript | Go
设计模式源码地址
详细请访问:https://github.com/microwind/design-pattern
详细请访问:https://github.com/microwind/design-pattern