《软件体系结构》——软件设计模式(自用)

本文介绍了面向对象设计的七大原则,包括单一职责、开闭、依赖倒转、里氏代换等,强调了它们在软件设计中的重要性。同时,探讨了三种设计模式:简单工厂、建造者和单例模式,以及它们的应用场景和优缺点。此外,提到了外观模式作为简化交互的手段。文章旨在帮助开发者理解并应用这些设计原则和模式来提升代码质量。
摘要由CSDN通过智能技术生成

一、 面向对象设计原则

共7个,这些原则相互依赖,相互补充,但不能全用。

1. 单一职责原则

(1) 类要单一职责(因为承担职责越多,可复用性越小)。
(2)仅有一个引起它变化的原因(如打电话:dial, connect, disconnect, send, receive)。

2. 开闭原则(或 对可变性封装原则)

(1)在不被修改的时候被扩展(如只修改config.xml里的配置,无需修改代码)。
(2)关键:抽象化。
(3)通过重构实现。

3. 依赖倒转原则

(1)高层模块不应该依赖低层模块,应该依赖抽象。
(如config.xml:<class_name>CircleButton<class_name>——>LoginForm:button: AbstructButton——>CircleButton、RectangleButton)
(2)抽象不应该依赖细节,细节应该依赖抽象。
(3)要针对接口编程,不针对实现编程(要面向接口,而不是面向具体对象。接口里仅放数据,不放行为)。
(4)类之间采用抽象耦合。

4. 里氏代换原则

(1)尽量使用基类定义对象(使用基类的地方都能使用子类)。
(2)是实现开闭原则的重要手段。

… …

二、设计模式分类

(去github或gitee上搜“design pattern”)
1. 创建型:创建对象。
2. 结构型:处理类或对象的组合。
3. 行为型:描述类或对象的交互、分配职责。

三、一些模型

1. 简单工厂模式

(1)举例:
banana——>工厂——>🍌
圆形按钮——>工厂——>CircleButton
(2)代码实现:通过枚举enumeration判断用户输入的字符是什么,再switch…case。
(3)适用范围:产生的产品是确定的;工厂往往比较小,只生产某些小方面的产品;产品的包装过程复杂。
(4)优点:用户无需关心创建的细节。

2. 建造者模式

(1)建造的对象是复杂的(从产品的组件开始建造,再组装合成产品)。
(2)优点:用户只需给出复杂对象的类型。
用户——>宝马汽车(——>方向盘;轮胎;发动机)
(3)缺点:只能生产差异不大的产品。

3. 单例模式

(1)保证一个类只有一个实例(如QQ电脑端同一账号只能等登录一个)。
(2)实现方式:私有的构造函数+私有的成员变量+公有的静态工厂方法。

4. 外观模式(或 对象结构型模式)

(1)用户只需与外观角色交互(外观角色是一个类,其内部很复杂)(如电源总开关,不必单独操控电灯开关、电扇开关…)。
(2)不要通过外观增加子系统的行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值