Unity设计模式概论---下

19 阅读3分钟

目前存在的问题:

1.抽象类和接口到底有什么用?

2.继承不好嘛?为什么有时候不用继承来实现功能复用

3.能不能在下次增加功能的时候不要修改源代码?

4.有没有一种方法可以减少类的个数?

5.面向对象软件的可重用性不是很好么?为什么还是在编写相同的代码?

6.实际开发中怎么运用这些设计模式?

设计模式和重构

设计模式是重构的目标,重构是达到目标的手段。

重构并不排斥提前设计,重构并不是不需要设计。

合理的提前设计+重构来不断地改进设计=趋近于优秀的系统。

避免过度设计。

设计模式的掌握

对于设计模式的学习,需要掌握以下几点:

设计模式的意图是什么?

要解决一个什么问题?

什么时候使用设计模式?

如何解决这个问题?

掌握结构图,记住关键代码!

能够联想到至少两个它的应用实例,一个生活中的,一个软件中的

这个模式的优缺点是什么?

在使用时要注意什么?

注意事项

在学习设计模式之前,一定要深入理解面向对象设计原则,包括SOLID、合成复用原则及迪米特法则,因为绝大多数设计模式都体现了一种或多种面向对象设计原则,理解面向对象设计原则时学好用好设计模式的基础。此外,还要熟悉设计模式的适用场景,知道什么时候用以及什么时候不用这个模式,这个很关键,不能滥用设计模式。

软件架构、重构与设计模式

软件架构不只是简单的分层或者划分模块,它包括更多的内容,如需求确认、系统分解、架构风格选择(B/S还是C/S)、技术选型、物理架构设计、数据架构设计、逻辑架构设计,架构师还需要参与包设计、核心模块设计以及类设计等概要设计和详细设计工作。

重构的时机,是否需要重构的标准?重构的难题?

当发现修改软件不像你想得那样简单时,就应该改进设计,使后续改变简单,让软件保持固定不变是危险的,如果一直不重构代码,等到最后不得不重构时,将会发现代码已经很僵化。因此,要让重构变成一种习惯,每一次在阅读代码或者检入代码时都要考虑对代码进行改善与优化。特别是那些在需求文档或者客户多次提到的需要修改的地方,一定要尽量灵活,当缺少这种灵活性时,就应该马上重构代码。

衡量是否需要重构的标准就是现有设计方案或者代码是否不易扩展,复用性是否存在问题,将来是否会增加维护成本,为了将来,应该重构。

书籍《重构与模式》 作者是"Joshua Kerievsky"