# designPattern **Repository Path**: pardon110/design-pattern ## Basic Information - **Project Name**: designPattern - **Description**: 23种设计模式,J2EE 通用解决方案,java百问,Spring框架解析, rabbitmq 消息队列 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-18 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 指引 设计模式详解,Spring框架,数据库,消息中间件 ## [设计模式](./doc/design_relation.png) - 对接口编程而不是实现编程 - 优先使用对象组合而不是继承 - 有些模式在特定情况下可能依赖于具体的类 - 如单例,工厂方法,策略模式,原型,访问者模式等 参考书 `Design Patterns - Elements of Reusable Object-Oriented Software` ### [创建型](./design_pattern/creation.md) - [Factory](./design_pattern/creation.md#factory-methods) - [Abstract Factory](./design_pattern/creation.md#abstract-factory) - [Singleton](./design_pattern/creation.md#singleton) - [Builder](./design_pattern/creation.md#builder) - [Ptototype](./design_pattern/creation.md#prototype) ### [结构型](./design_pattern/structure.md) - [Adapter](./design_pattern/structure.md#adapter) - [Bridge](./design_pattern/structure.md#bridge) - [Filter](./design_pattern/structure.md#filtercriteria) - [Decorator](./design_pattern/structure.md#decorator) - [Facade](./design_pattern/structure.md#facade) - [Flyeight](./design_pattern/structure.md#flyweight) - [Proxy](./design_pattern/structure.md#proxy) ### [行为型](./design_pattern/behavior.md) - [Chain of Responsibility](./design_pattern/behavior.md#chain-of-responsiblity) - [Command](./design_pattern/behavior.md#command) - [Iterator](./design_pattern/behavior.md#iterator) - [Mediator](./design_pattern/behavior.md#mediator) - [Observer](./design_pattern/behavior.md#obsever) - [State](./design_pattern/behavior.md#state-pattern) - [Null Object](./design_pattern/behavior.md#null-object-pattern) - [Strategy](./design_pattern/behavior.md#strategy) - [Template](./design_pattern/behavior.md#template-method) - [Visitor](./design_pattern/behavior.md#visitor-pattern) ### [J2EE](./design_pattern/J2EE.md) - [MVC](./design_pattern/J2EE.md#mvc) - [Business Delegate](./design_pattern/J2EE.md#bussiness-delegate) - [Composite Entity](./design_pattern/J2EE.md#composite-entity) - [Data Access Object](./design_pattern/J2EE.md#data-access-object) - [Front Controller](./design_pattern/J2EE.md#front-controller) - [Intercepinig Filter](./design_pattern/J2EE.md#intercepinig-filter) - [Service Locator](./design_pattern/J2EE.md#service-locator-pattern) - [Transfer Object](./design_pattern/J2EE.md#transfer-object) ### 原则 - Open Close 对扩展开放,对修改关闭 - Liskov Subsititutioin 继承复用,任何基类可以出现的地方,子类一定可以出现 - Dependence Inversion 针对接口编程,依赖于抽象而不依赖于具体 - Interface Inversion 使用多个隔离的接口,比使用单个接口要好 - Demeter 最少知道,一个实体应当尽量少地与其他实体之间发生相互作用 - Composite Reuse 尽量使用合成/聚合的方式,而不是使用继承 ## [Java] - [开发规约](./topic/oop.md) - [java面试百问](./topic/100.md) ## [Framework] - [spring](./design_pattern/spring.md) - [springMVC](./design_pattern/spring-mvc.md) - [basic](./design_pattern/spring-basic.md) - [resource](./design_pattern/spring-resource.md) - [validation](./design_pattern/spring-validation.md) ## [Database] - [redis](./topic/db.md#redis) - [elasticsearch](./topic/elasticsearch.md) - [aggragate](./topic/es.aggs.md) ## [Queue] - [Kafka](./topic/kafka.md) - [RabbitMQ](./topic/rabbitmq.md)