文章永久连接:https://tech.souyunku.com/?p=2653
设计模式(Design pattern)是重构解决方案
这点很重要,尤其是现在 B/S 一统天下的局面,过早考虑设计模式,得不偿失
设计模式(Design pattern)代表了最佳的实践,通常被面向对象的软件开发人员所采用
很多教程都说设计模式是被有经验的人使用,其实只要定义了一个类,或多或少都在使用它们,而不是有没有经验 只是有经验的人知道自己在使用设计模式,而且知道怎么做的更好
设计模式是软件开发人员在软件开发过程中面临复杂度问题的一般问题的解决方案
这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的
设计模式是复杂度解决方案,不是小程序的解决方案(就一两个类文件,用设计模式那是增加复杂度)
记住
设计模式(Design pattern)是重构解决方案不是开发的解决方案
设计模式的 6 大原则才是开发的解决方案
关于范例
因为我用的是包机制来开发,所以引入了 com.souyunku.tech.gof
包,运行起来就有点复杂了 所以我们希望你使用 IDE 来测试范例,这样点击运行可以直接查看结果
如果是手动编译运行,比如工厂模式中的范例,则需要如下
$ javac -d . src/main/com/souyunku/tech/gof/FactoryPatternDemo.java
$ java com.souyunku.tech.gof.FactoryPatternDemo
在范例中的 编译运行以上 Java 范例
指的就是这两条命令
本教程将通过 Java 范例,一步一步讲解学习设计模式的概念
谁适合阅读本教程?
无论您是新手,还是老手,本教程都值得一读
1、 对于那些具有丰富的开发经验的开发人员,学习设计模式有助于了解在软件开发过程中所面临的问题的最佳解决方案
2、 对于那些经验不足的开发人员,学习设计模式有助于通过一种简单快捷的方式来学习软件设计
总的来说,不推荐刚入门的开发者学习,哪怕把代码搞的一塌糊涂,也要先将功能完成,初学者,迈过坑是必然的,只有对自己编写的代码不满意,你才会体会到设计模式的重要性,也才能更加理解
阅读本教程前,我们希望需要了解的知识:
因为本教程的范例都是基于 Java 语言,所以我们希望你有一定的 Java 基础知识
如果你还不了解 Java 可以通过我们的 Java 基础教程 学习
干货推荐
附录:设计模式:系列文章
- 【当前读到】一、设计模式
- 二、设计模式 – 简介
- 三、设计模式 – 四大类型
- 四、设计模式 – 六大原则
- 五、工厂模式 ( Factory Pattern )
- 六、抽象工厂模式 ( Abstract Factory Pattern )
- 七、单例模式 ( Singleton Pattern )
- 八、建造者模式 ( Builder Pattern )
- 九、原型模式 ( Prototype Pattern )
- 十、适配器模式 ( Adapter Pattern )
- 十一、桥接模式 ( Bridge Pattern )
- 十二、过滤器模式 ( Filter Pattern )
- 十三、组合模式 ( Composite Pattern )
- 十四、装饰器模式 ( Decorator Pattern )
- 十五、外观模式 ( Facade Pattern )
- 十六、享元模式 ( Flyweight Pattern )
- 十七、代理模式 ( Proxy Pattern )
- 十八、责任链模式 ( Chain of Responsibility)
- 十九、命令模式 ( Command Pattern )
- 二十、解释器模式 ( Interpreter Pattern )
- 二十一、迭代器模式 ( Iterator Pattern )
- 二十二、中介者模式 ( Mediator Pattern )
- 二十三、备忘录模式 ( Memento Pattern )
- 二十四、观察者模式 ( Observer Pattern )
- 二十五、状态模式 ( State Pattern )
- 二十六、空对象模式 ( Null Object Pattern )
- 二十七、策略模式 ( Strategy Pattern )
- 二十八、模板模式 ( Template Pattern )
- 二十九、访问者模式 ( Visitor Pattern )
- 三十、MVC 模式
- 三十一、业务代表模式(Business Delegate Pattern)
- 三十二、组合实体模式 (Composite Entity Pattern)
- 三十三、数据访问对象模式 ( Data Access Object )
- 三十四、前端控制器模式(Front Controller Pattern)
- 三十五、拦截过滤器模式 ( Intercepting Filter )
- 三十六、服务定位器模式 (Service Locator Pattern)
- 三十七、传输对象模式 ( Transfer Object Pattern )
- 三十八、设计模式资源