引言
身为一个普通的软件开发者,到了一个阶段会发现自己遇到了瓶颈,也就没有那么从容潇洒的再出去happy,人总是有得有失。
在转载文章中内容很有趣味,例子也是通俗易懂。就比如说
软件开发其实就跟武侠小说中的内功与招式类似,我们熟悉的九阳神功、独孤九剑,一个浑厚内力,一个精妙绝伦的招式,两样都是所有人梦寐以求的。
放到软件开发当中,Java、Object-C、C、C++编程语言,Eclipes、Visual Studio、Xcode等开发工具、框架等等都可以理解是招式;
数据结构、算法、设计模式、重构、软件工程等等都是修炼的内力;
招式可以很快的去学会运用,但是内力需要长时间的积累、沉淀;
文中提到过,每一个开发人员都想成为一名兼具淋漓招式和浑厚内容的"上乘"软件开发工程师,是的很想。
So,我自认为软件开发工程师就好比是修仙,最后得道飞升、羽化飞仙 哈哈哈!
修炼内力也就是修炼你的真元力,好比是修仙小说当中,从小就要打好底子,然后才能走的更远,然半道出家,必奋起直追!
修炼内力。
追逐境界一 (设计模式)
设计模式
概念
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。
设计模式用于在特定的条件下为一些重复出现的软件设计问题提供合理的、有效的解决方案
设计模式包含的关键要素模式名称、问题、解决方案和效果。
模式名称(Pattern Name)通过一两个词来描述模式的问题、解决方案和效果,以便更好地理解模式并方便开发人员之间的交流,绝大多数模式都是根据其功能或模式结构来命名的(GoF设计模式中没有一个模式用人名命名,微笑);
问题(Problem)描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因;
解决方案(Solution)描述了一个设计模式的组成成分,以及这些组成成分之间的相互关系,各自的职责和协作方式,通常解决方案通过UML类图和核心代码来进行描述;
效果(Consequences)描述了模式的优缺点以及在使用模式时应权衡的问题。
面向对象设计的六大基本原则
学习设计模式需要了解,设计的基本原则
设计原则 | 定义 |
---|---|
单一职责原则(Single Responsibility Principle, SRP) | 一个类只负责一个功能领域中的相应职责 |
开闭原则(Open-Closed Principle, OCP) | 软件实体应对扩展开放,而对修改关闭 |
里氏代换原则(Liskov Substitution Principle, LSP) | 所有引用基类对象的地方能够透明地使用其子类的对象 |
依赖倒转原则(Dependence Inversion Principle, DIP) | 抽象不应该依赖于细节,细节应该依赖于抽象 |
接口隔离原则(Interface Segregation Principle, ISP) | 使用多个专门的接口,而不使用单一的总接口 |
合成复用原则(Composite Reuse Principle, CRP) | 尽量使用对象组合,而不是继承来达到复用的目的 |
迪米特法则(Law of Demeter, LoD) | 一个软件实体应当尽可能少地与其他实体发生相互作用 |
常用设计模式列表
设计原则 | 定义 |
---|---|
创建型模式 Creational Pattern |
单例模式 Singleton Pattern |
- | 简单工厂模式 Simple Factory Pattern |
- | 工厂方法模式 Factory Method Pattern |
- | 抽象工厂模式 Abstract Factory Pattern |
- | 原型模式 Prototype Pattern |
- | 建造者模式 Builder Pattern |
结构型模式 Structural Pattern |
适配器模式 Adapter Pattern |
- | 桥接模式 Bridge Pattern< |
- | 组合模式 Composite Pattern |
- | 装饰模式 Decorator Pattern |
- | 外观模式 Façade Pattern |
- | 享元模式 Flyweight Pattern |
- | 代理模式 Proxy Pattern |
行为型模式 Behavioral Pattern |
职责链模式 Chain of Responsibility Pattern |
- | 命令模式 Command Pattern |
- | 解释器模式 Interpreter Pattern |
- | 迭代器模式 Iterator Pattern |
- | 中介者模式 Mediator Pattern |
- | 备忘录模式 Memento Pattern |
- | 观察者模式 Observer Pattern |
- | 状态模式 State Pattern |
- | 策略模式 Strategy Pattern |
- | 模板方法模式 Template Method Pattern |
- | 访问者模式 Visitor Pattern |
转载整理自
网友评论