学习设计模式要先知道的几个概念

设计模式-要先知道的几个概念

参考资料:尚硅谷设计模式.
参考资料:图解高内聚与低耦合.
萌新码农 笔记摘自网络资料 + 自己的思考 若有错误请大佬们指点
参考资料网上重复篇章多 忘了参考了哪几个博主的文章 若有侵权 请私信 看到会加上链接

独孤求败的四个境界

1)“凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋”

2)“紫薇软剑,三十岁所用,误伤义士不详,乃弃之深谷”

3)“重剑无锋,大巧不工,四十年前恃之横行天下”

4)“四十岁之后,不滞于物,草木竹石皆可为剑。自此精修,渐进于无剑胜有剑之境”。

掌握设计模式的层次

1)第一层 刚开始学习编程不久 听说过什么是设计模式

2)第二层 有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道

3)第三层 学习过了设计模式 发现自己已经在使用了 并且发现了一些新的模式挺好用的

4)第四层 阅读很多别人写的源码和框架 在其中看到别人的设计模式 并且能够领会设计模式的精妙和带来的好处

5)第五层 代码写着写着 自己没有意识到使用了设计模式 并且熟练的写了出来

设计模式类型

三种类型,共23种

1)创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。

2)结构式模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式

3)行为型模式:模板方法模式、命令模式、访问者模式、迭代模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式

组合和聚合的概念

组合(Composition)表示的是"Part-od"的关系:父类拥有子类,子类不能独立于父类存在

部分与整体是与生俱来的,部分的存在依赖于整体。表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存在。组合关系的"部分",是不能在整体之间进行共享的。

比如:人与人的某个器官,人一出生,器官就在,人死亡,器官就没了意义。

比如说是类里面new出来的

聚合(Aggregation)表示的是"Has-a"的关系:父类包含子类,子类可以独立于父类存在

表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。

比如:你与你的带闹闹(或者其它物品),电脑是属于你的,但你不是一出生就拥有电脑的,电脑是某个厂商生产出来的,然后你买过来成为你的一部分。你死了以后,电脑也可以送给被人继续用!这就不叫其存亡了,所以这是聚合。

比如set或构造传入的类

高内聚和低耦合的概念

耦合

​ 模块之间存在依赖,导致改动可能会互相影响,关系越紧密,耦合越强,模块独立性越差.比如模块A直接操作了模块B数据,则视为强耦合,若A只是通过数据与模块B交互,则视为弱耦合.

​独立的模块便于扩展,维护,写单元测试,如果模块之间重重依赖,会极大降低开发效率.

只需要暴露对外的统一接口,切勿拿具体类对象进行操作
面向不同的对象,做拆分隔离,切勿都写在一起

内聚

模块内部的元素,关联性越强,则内聚越高,模块单一性更强.一个模块应当尽可能独立完成某个功能,如果有各个场景需要被引入当前模块,代码质量将变得非常脆弱,这样情况建议拆分为多个模块.

低内聚的模块代码,不管是维护,扩展还是重构都相当麻烦,难以下手.

把跟模块有关的事情都写到一处地方,自己的事情自己干

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值