写点什么

框架设计原则

用户头像
wing
关注
发布于: 2020 年 09 月 27 日

本周是跟随李智慧老师学习架构师训练营的第二周,本周主要学习了架构设计中的一些基本原则,总结如下:

人类第一个程序员:英国人 Ada

编程方法演进过程:面向计算机、面向过程、面向对象

第一个成功的面向对象语言:Smalltalk

对象的特点:

状态:表明每个对象具有自己的数据

行为:表明每个对象可以产生的行为(方法)

标识:表明每个对象都区别于其他对象(唯一地址)

面向对象的特点:封装、继承、多态、(抽象)

软件设计的目的:使程序达到“强内聚,松耦合”,从而使软件:

1.易扩展:易于扩展功能

2.更强壮:不容易被粗心的程序员破坏

3.可移植:能够在多样的环境下运行

4.更简单:可读性高、易维护

面向对象设计基本原则:

1.开闭原则

2.里氏置换原则

3.依赖倒置

4.单一职责

5.接口隔离

(6.迪米特法则)

开闭原则

对扩展开放,对修改关闭。增加新功能时不应该对原有业务逻辑进行修改包括类、函数、模块等,关键是抽象,扩展功能应通过原有的抽象实现自己的业务逻辑。

里氏置换原则

能出现父类的地方就能用子类替换,并且不会对现有程序造成任何影响。优先使用组合。

依赖倒置

高层与低层不能相互依赖,均应依赖于抽象,并且此抽象属于高层。

单一职责

接口或类只具有单一行为(组成元素之间的功能相关性)。一个职责指一个变化原因,一个类,只能有一个引起其变化得原因。

接口隔离

不应该强制让客户程序依赖它们不需要的方法,即不应将调用方不需要的行为暴露给调用方。


作业:

1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

2. 请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。



  • 提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。


1.依赖倒置原则指高层不应依赖于低层,低层也不应依赖于高层,高层与低层应共同依赖于抽象,并且此抽象属于高层。好莱坞原则:Don't call me,l will call you(不要给我打电话,我会打给你).以 tomcat、spring 等容器(高层)为例,我们编写应用程序(低层)并不需要去调用(call)tomcat 或者 spring 的方法,只要应用程序按照 tomcat 或 spring 的规范去编写,tomcat 或 spring 就会调用我们的代码(call me)运行程序。

2.


需要使用 put get delete 方法的应用程序注入 BaseCache

需要使用 rebuild 方法的应用程序注入 ConfigCache

用户头像

wing

关注

还未添加个人签名 2018.05.13 加入

还未添加个人简介

评论

发布
暂无评论
框架设计原则