创建型设计模式

一、设计模式介绍

1.设计模式是什么

设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案;

2.设计模式怎么来的?

满足设计原则后,慢慢迭代出来的。

3.设计模式解决什么问题?

前提:具体需求既有稳定点又有变化点

期待修改修改少量代码,就可以适应需求的变化;

4.设计模式基础

面向对象思想:封装、继承、多态;

设计原则;

5.设计原则有哪些?

5.1依赖倒置

高层模块不应该依赖底层模块,两者都应该依赖抽象;
抽象不应该依赖具体实现,具体实现应该依赖于抽象;
自动驾驶系统公司是高层,汽车生产厂商为低层,它们不应该互相依赖,一方变动另一方也会跟着变动;而应该抽象一个自动驾驶行业标准,高层和低层都依赖它;这样以来就解耦了两方的变动;自动驾驶系统、汽车生产厂商都是具体实现,它们应该都依赖自动驾驶行业标准(抽象);

5.2.开放封闭

一个类应该对扩展(组合和继承)开放,对修改关闭;

5.3.面向接口

不将变量类型声明为某个特定的具体类,而是声明为某个接口;
客户程序无需获知对象的具体类型,只需要知道对象所具有的接口;
减少系统中各部分的依赖关系,从而实现“高内聚、松耦合”的类型设计方案;

5.4.封装变化点

将稳定点和变化点分离,扩展修改变化点;让稳定点和变化点的实现层次分离;

5.5.单一职责

一个类应该仅有一个引起它变化的原因;

5.6.里氏替换

子类型必须能够替换掉它的父类型;主要出现在子类覆盖父类实现,原来使用父类型的程序可能出现错误;覆盖了父类方法却没有实现父类方法的职责;

5.7.接口隔离

不应该强迫客户依赖它们不用的方法;
一般用于处理一个类拥有比较多的接口,而这些接口涉及到很多职责;
客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。

5.8.组合优于继承

继承耦合度高,组合耦合度低;

6.设计模式如何应用

6.1.明确目的:

在现有设计模式的基础上,扩展代码;
做功能抽象时,如何选择设计模式;

6.2.步骤分析

该设计模式需要解决的问题(稳定点、变化点);

该设计模式的代码结构是什么;

符合哪些设计原则;

如何扩展代码;

联想应用场景&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值