# 设计模式 设计模式是我们必须要掌握的一项技能
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、 让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式 是软件工程的基石脉络,如同大厦的结构一样。 ## 六大设计原则 * [单一职责原理](principle#1单一职责原理-) * [里氏替换原则](principle#1里氏替换原则) * [依赖倒置原则](principle#3依赖倒置原则) * [接口隔离原则](principle#4接口隔离原则) * [迪米特法则](principle#5迪米特法则) * [开闭原则](principle#6开闭原则) ## 23种设计模式 * 创建型模式: [简单工厂模式](src/main/java/com/zeekling/simpleFactory)、[抽象工厂模式](src/main/java/com/zeekling/abstractFactory)、 [单例模式](src/main/java/com/zeekling/simgleton) 、[建造者模式](src/main/java/com/zeekling/Builder)、[原型模式](src/main/java/com/zeekling/Prototype); * 结构型模式: [适配器模式](src/main/java/com/zeekling/adapter) 、[桥接模式](src/main/java/com/zeekling/bridge)、[代理模式](src/main/java/com/zeekling/gproxy)、 [组合模式](src/main/java/com/zeekling/gcomposite)、[外观模式](src/main/java/com/zeekling/gfacade) 、 [装饰模式](src/main/java/com/zeekling/gdecorate)、[享元模式](src/main/java/com/zeekling/gflyweight); * 行为型模式: [责任链模式](src/main/java/com/zeekling/handler)、[迭代子模式](src/main/java/com/zeekling/giterator) 、 [备忘录模式](src/main/java/com/zeekling/gmemento) 、[命令模式](src/main/java/com/zeekling/gcommand)、 [状态模式](src/main/java/com/zeekling/gstate) 、[观察者模式](src/main/java/com/zeekling/gobserver) 、 [策略模式](src/main/java/com/zeekling/gstrategy) 、[模板模式](src/main/java/com/zeekling/gtemplate) 、 [访问者模式](src/main/java/com/zeekling/gvisitor) 、[中介者模式](src/main/java/com/zeekling/gmediator) 、 [解释器模式](src/main/java/com/zeekling/ginterpreter); ## 存在的问题 在学习设计模式时,发现了一个问题:自己这样看别人例子,没有实践,对设计模式的理解不是特别容易。不过我尽我可能理解。 ## 感悟 最近发现一味的在网上google看博客是不行的,这样自己对知识很难有一个整体的把握,觉得google看博客和看书结合起来是一个很不错的选择。