Photo :Design Patterns
文 | Edison Zhou
2017年,我开始系统学习设计模式,参考了《大话设计模式》、《设计模式的艺术》等书籍,并通过C#语言写了各种模式的代码示例(已经放到了我的github上并收获了120+个star)。在日常工作上进行Code Review时会时常通过一些学习过的设计模式来指导重构或给出意见,感觉系统学习过和没有学习过还是有一点区别。虽然仍然有很多的遗漏和不足,仍然在此将其总结和优化阅读目录分享给各位有需要的初学者朋友!
1 预备篇
下文来自于一位朋友圣杰,带你通过一个类图在5分钟内熟悉UML类图:
UML类图10分钟快速入门
2 创建型模式篇
创建型模式是一类最常用的设计模式,在软件开发中应用非常广泛。创建型模式将对象的创建和使用分离,在使用对象时无需关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。每一个创建型模式都在试图回答3个问题:3W -> 创建什么(What)、由谁创建(Who)和何时创建(When)。
① 设计模式的征途-01.单例(Singleton)模式
② 设计模式的征途-02.简单工厂(Simple Factory)模式
③ 设计模式的征途-03.工厂方法(Factory Method)模式
④ 设计模式的征途-04.抽象工厂(Abstract Factory)模式
⑤ 设计模式的征途-05.原型(Prototype)模式
⑥ 设计模式的征途-06.建造者(Builder)模式
3 结构型模式篇
结构型模式所描述的是如何将类和对象结合在一起来形成一个更大的结构,它描述两种不同的事物:类和对象,根据这一点,可分为类结构型和对象结构型模式。
类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系;
对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。
① 设计模式的征途-07.适配器(Adapter)模式
② 设计模式的征途-08.桥接(Bridge)模式
③ 设计模式的征途-09.组合(Composite)模式
④ 设计模式的征途-10.装饰(Decorator)模式
⑤ 设计模式的征途-11.外观(Facade)模式
⑥ 设计模式的征途-12.享元(Flyweight)模式
⑦ 设计模式的征途-13.代理(Proxy)模式
4 行为型模式篇
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。
行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。
① 设计模式的征途-14.职责链(Chain of Responsibility)模式
② 设计模式的征途-15.观察者(Observer)模式
③ 设计模式的征途-16.访问者(Visitor)模式
④ 设计模式的征途-17.模板方法(Template Method)模式
⑤ 设计模式的征途-18.策略(Strategy)模式
⑥ 设计模式的征途-19.命令(Command)模式
⑦ 设计模式的征途-20.备忘录(Memento)模式
⑧ 设计模式的征途-21.迭代器(Iterator)模式
⑨ 设计模式的征途-22.中介者(Mediator)模式
⑩ 设计模式的征途-23.解释器(Interpreter)模式
5 代码整洁之道
《代码整洁之道》主要讲述了一系列行之有效的整洁代码操作实践。软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。这本书的阅读对象为一切有志于改善代码质量的程序员,书中介绍的规则均来自作者Bob大叔多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。下文是我学习《代码整洁之道》一书的读书笔记以及.NET平台下代码规范插件StyleCop.Analyzer的使用:
《代码整洁之道》(Clean Code) 读书笔记
“细节之中自有天地,整洁成就卓越代码”
参考资料
刘伟,《设计模式的艺术—软件开发人员的内功修炼之道》
程杰,《大话设计模式》
Robert Martin,《代码整洁之道》
示例代码
GitHub:https://github.com/EdisonChou/DesignPattern.Samples.CSharp
The End
「 码字不易,也希望各位看官看完觉得还行就在本文右下方顺手点个“在看”,那就是对我最大的鼓励!如果觉得很好,也可以转发给你的朋友,让更多人看到,独乐乐不如众乐乐,是吧?」
往期精彩回顾
.NET Core on K8S学习与实践系列文章索引目录
.NET Core 微服务学习与实践系列文章索引目录
【资料】2019 .NET China Conf 大会资料下载
【视频】2019 .NET China Conf 大会视频发布
2019 .NET China Conf 路一直都在,社区会更好
基于Jenkins的开发测试全流程持续集成实践
基于Jenkins Pipeline的.NET Core持续集成实践
【导读】我读经典,心旷神怡 - 经典书籍读后感汇总
【导读】我的诗和远方 - 也读唐诗与旅游游记汇总
点个【在看】和他人一起分享