系统设计

参考
参考github
菜鸟

优秀的软件架构

代码复用

无论是开发哪种软件产品,成本和时间都是最重要的。
代码复用是减少开发成本最常用的方式之一,其目的非常明显,即:与其反复从头开发,不如在新对象中重用已有的代码。


扩展性

需求变化是程序员生命中唯一不变的事情。


如何正确使用设计模式?

设计模式不是为了特定场景而生的,而是为了让大家可以更好和更快地开发。

七大设计原则

  1. 开闭原则:对扩展开放,对修改关闭。降低维护带来的新风险。
  2. 依赖倒置原则:高层不应该依赖低层,要面向接口编程。更利于代码结构的升级扩展。
  3. 单一职责原则:一个类只干一件事,实现类要单一。便于理解,提高代码的可读性。
  4. 接口隔离原则:一个接口只干一件事,接口要精简单一。功能解耦,高聚合、低耦合
  5. 迪米特法则:不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度。只和朋友交流,不和陌生人说话,减少代码臃肿。
  6. 里氏替换原则:不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义。防止继承泛滥。
  7. 合成复用原则:尽量使用组合或者聚合关系实现代码复用,少使用继承。降低代码耦合。

这些原则的目的只有一个:降低对象之间的耦合,增加程序的可复用性、可扩展性和可维护性。
低耦合高内聚:内紧外松,坚信模块能完成它的任务。


创建型模式

创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。就像我们去商场购买商品时,不需要知道商品是怎么生产出来一样,因为它们由专门的厂商生产。

单例模式:

某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式

例子:Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。

关键:构造方法为私有。

懒汉式创建:不着急创建对象,在需要的时候创建。

饿汉式创建:系统初始化的时候就创建对象。

UML:

原型模式:

将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。

工厂方法模式:

定义一个用于创建产品的接口,由子类决定生产什么产品

抽象工厂模式:

提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品

建造者模式:

将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。


系统设计
http://blog.mornw.com/2022/02/18/学习/system_design/
作者
朝霞换夕阳
发布于
2022年2月18日
许可协议