架构师训练营 - Lesson Week 2

发布于: 2020 年 06 月 18 日
架构师训练营 - Lesson Week 2

一、前言

现在想到一种自认为满好的听课方式,就是记下整节课,听到的很多不知道,或者只是知道,并没有去学习掌握的东西,然后逐个击破,好好总结成笔记,应该还可以吧。因为学习的是设计模式,然后就在微信读书上看了《设计模式之禅》,使用Android Studio 4.0来敲里面的例子,但是使用Run XXXX执行main()方法一直报错,需要执行XXXX with Coverage才行,在网上找了一下解决方案,是需要在.idea/gradle.xml文件里的<GradleProjectSettings>标签下加上<option name="delegatedBuild" value="false" />,那么,就开始敲例子了。

二、设计原则

1、单一职责原则

  • 单一职责原则英文名称为Single Responsibility Principle,简称SRP

  • 应该有且仅有一个原因引起类的变更,比如用户信息的接口里,不应该存在负责用户属性的和负责用户行为,要求一个接口或类只有一个原因引起变化,它就负责一件事情。

  • 单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或类设计得是否优良,但是“职责”和“变化原因”都是不可度量的,因项目而异,因环境而异,原则是死的,人是活的。

  • 单一职责适用于接口、类和方法

  • 建议是接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。

2、依赖倒置原则

  • Dependence Inversion Principle,简称DIP

  • 高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。面向接口编程,简称OOD

  • TDDTest-Driven Development,测试驱动开发)开发模式就是依赖倒置原则的最高级应用,先写好单元测试类,然后再写实现类,这对提高代码的质量有非常大的帮助,特别适合研发类项目或在项目成员整体水 平比较低的情况下采用。

  • 依赖的三种写法:构造函数传递依赖对象、Setter方法传递依赖对象和接口声明依赖对象。

  • 项目终极目标:投产上线和盈利。

  • 技术只是实现目的的工具。

3、接口隔离原则

  • 接口分为两种:实例接口(Object Interface)、类接口(Class Interface

  • 什么是隔离呢?客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上,提供给每个模块的都应该是单一接口,有几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口

  • 与单一职责原则的区别?单一职责要求的是类和接口职责单一,接口隔离原则要求接口的方法尽量少

  • 一个接口只服务于一个子模块或业务逻辑

4、开闭原则

  • 一个软件实体如类、模块和函数应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化

  • 3W原则:What?Why?How?

  • 抽象约束、元数据控制模块行为、制定项目章程和封装变化

  • 软件设计最大的难题就是应对需求的变化

  • 开闭原则是重中之重,是最基础的原则

  • 拥抱变化

三、其他

  • 面向对象的核心是多态。

  • 判断更好?强内聚,松耦合

  • 设计模式,别为了学而学,要真正使用到代码中去,结合实际的场景。

  • 谁来定义接口很重要,也前端越接近业务

  • 框架不是提供接口,是提供规范,按照我的设计约束去实现

  • 任何场景下出现if和else一定有问题,因为一定可以替代掉,用策略模式拆开,分为小类去写

  • 子类不能比父类更严格

  • 慎用继承

  • 敏捷不是过程,是设计

  • 优秀程序员不怕需求变更,而是怕需求不变更,为此而设计的

  • 设计模式,找到精华亮点,感受到模式之美,多态精髓

  • 随时重构

  • 加强业务敏感度,能主动和产品打交道,输出影响力

  • 设想自己要去创业的思维、创业沙龙、创业书,从高处看问题

  • 管理学、MBA

  • 不给自己设限

发布于: 2020 年 06 月 18 日 阅读数: 30
用户头像

brave heart

关注

唯一不变的是变化本身。 2018.04.17 加入

🗡 她只唱只想这首止战之殇。

评论

发布
暂无评论
架构师训练营 - Lesson Week 2