design-pattern
design-pattern copied to clipboard
Design Pattern 经典设计模式源码 C/Java/Go/JavaScript/Python等不同语言实现。 FP/OOP/MVC/MVP/MVVM/DDD等设计思想研究
Design Pattern 23种经典设计模式不同语言源码详解
超过23种经典设计模式源码详解,结合实际场景,充分注释说明,每一行代码都经过检验,确保可靠。
用不同语言来实现,包括C/Java/JS/Python/TypeScript/Go等。
Including over 23 source code examples of classic design patterns, which are fully annotated in combination with actual scenarios. Every line of code has been verified to ensure reliability.
Implemented in different languages, including Java/JS/Python/TypeScript/Go, etc.
设计模式结构图
源码例子
创建型
-
工厂模式(Factory Pattern) ,由工厂类提供统一的创建对象的方法。 C |Java | JavaScript | Python | TypeScript | Go
-
抽象工厂模式(Abstract Factory Pattern) ,是一个超级工厂,用来创建其他工厂方法。 C | Java | JavaScript | Python | TypeScript | Go
-
原型模式(Prototype Pattern) ,利用clone()复制已有对象的实例。 C | Java | JavaScript | Python | TypeScript | Go
-
建造者模式(Builder Pattern) ,利用多个简单对象逐步构建一个复杂对象,类似建造房子。 C | Java | JavaScript | Python | TypeScript | Go
-
单例模式(Singleton Pattern) ,保证创建的类只有一个实例,并提供一个访问该实例的全局节点。 C | Java | JavaScript | Python | TypeScript | Go
结构型
-
适配器模式(Adapter Pattern) ,为两个不兼容的接口提供专门兼容方案。 C | Java | JavaScript | Python | TypeScript | Go
-
桥接模式(Bridge Pattern) ,将类拆分为抽象和实现两个独立的层次结构进行解耦。 C | Java | JavaScript | Python | TypeScript | Go
-
组合模式(Composite Pattern) ,依据树形结构来组合对象,用不同组件来构建某个部分或整体对象。 C | Java | JavaScript | Python | TypeScript | Go
-
装饰器模式(Decorator Pattern) ,将对象放入到一个特殊封装的对象中,赋予其新的能力。 C | Java | JavaScript | Python | TypeScript | Go
-
外观模式(Facade Pattern) ,给现有的系统添加一个高层接口,隐藏子系统的复杂性。 C | Java | JavaScript | Python | TypeScript | Go
-
享元模式(Flyweight Pattern) ,通过共享多个对象的相同状态,让有限的内存容量载入更多对象。 C | Java | JavaScript | Python | TypeScript | Go
-
代理模式(Proxy Pattern) ,用一个类来代理另一个类或几个类的功能。 C | Java | JavaScript | Python | TypeScript | Go
-
过滤器模式(Filter Pattern) ,使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来。 C | Java | JavaScript | Python | TypeScript | Go
行为型
-
策略模式(Strategy Pattern) ,将每一个算法策略封装到接口中,根据需要设定策略,使具体实现和策略解耦。 C | Java | JavaScript | Python | TypeScript | Go
-
观察者模式(Observer Pattern) ,当主题对象的状态发生改变时,所有依赖对象都得到通知并被自动更新。 C | Java | JavaScript | Python | TypeScript | Go
-
迭代器模式(Iterator Pattern) ,给数据对象构建一套按顺序访问集合对象元素的方式。 C | Java | JavaScript | Python | TypeScript | Go
-
模板方法模式(Template Method Pattern) ,定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中。 C | Java | JavaScript | Python | TypeScript | Go
-
责任链模式(Chain of Responsibility Pattern) ,为请求创建了一个接收者对象的链,请求沿着处理者链进行发送和处理。 C | Java | JavaScript | Python | TypeScript | Go
-
命令模式(Command Pattern) ,把请求以命令的形式包裹在对象中,并传给调用对象。 C | Java | JavaScript | Python | TypeScript | Go
-
备忘录模式(Memento Pattern) ,将对象的状态捕捉住,并以备忘录的形式存储起来,以便合适的时候还原。 C | Java | JavaScript | Python | TypeScript | Go
-
状态模式(State Pattern) ,类的行为是基于它的状态改变的,不同的状态下有不同的行为。 C | Java | JavaScript | Python | TypeScript | Go
-
访问者模式(Visitor Pattern) ,封装访问者类,把各元素类的操作集合起来,目的是将数据结构与数据操作分离。 C | Java | JavaScript | Python | TypeScript | Go
-
中介者模式(Mediator Pattern) ,它用一个中介对象来封装一系列的动作,以让对象之间进行交流。 C | Java | JavaScript | Python | TypeScript | Go
-
解释器模式(Interpreter Pattern) ,实现了一个表达式接口,并能解释特定的上下文里面的变量和语句。 C Java | JavaScript | Python | TypeScript | Go
设计思想
- MVC 演示例子
- MVP 演示例子
- MVVM 演示例子
- OOP 演示例子
查看全部源码
Contact 联系
欢迎共建 Welcome to join
- Wechat: springbuild
- QQ: 12263539