设计模式
来源:互联网 发布:网络红人菁菁淘宝店 编辑:程序博客网 时间:2024/06/09 20:19
- 总结笔记,内容简单,不定期更新
开放封闭原则(OCP, Open Closed Principle)
- 开发封闭原则是所有面向对象原则的核心。
- 软件实体应该是可扩展的,不可修改的。
- 对扩展是开发的,对修改是封闭的。
- 扩展开发指,有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
- 对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不需要对类进行修改。
- 实现开放封闭原则的核心思想就是抽象编程。
- 让类依赖于固定的抽象,修改就是封闭的。
- 通过面向对象的继承和多态机制,对抽象体继承,覆写其方法来改变固有的行为,实现新的扩展方法,对扩展就是开放的。
单例模式
- 最简单的一种设计模式
- 私有化构造函数
- 指向本身实例的私有静态指针
- 以本身实例指针为返回值的,静态,共有方法
- 确保程序运行时,一个类只有一个实例。
- 自行实例化,并向真个系统提供这个实例。
迪米特法则
- LoD (Law of Demeter)
- LKP (Least Konwledge Principle)
- 一个对象应当对其他对象尽可能少的了解,只与直接朋友说话,不和陌生人说话
- 尽量降低类与类之间的耦合
- 朋友:两个对象间有耦合关系
- 直接朋友:出现在成员变量、方法参数、方法返回值中的其他类,称为该类的直接朋友
- 出现在局部变量中的类,不是该类的直接朋友
- 陌生类,最好不要作为局部变量的形式
简单工厂
- 又称静态工厂方法,由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式家族中最简单实用的模式。
- 满足DIP和LOD。
- 不满足OCP(需要修改工厂类)
- DIP 依赖倒装原则:针对接口编程,不针对实现编程
工厂模式
- 由于简单工厂模式不满足OCP,提出了工厂模式。
- 简单工厂模式只有一个工厂类。
- 工厂模式有一组实现了相同接口的工厂类。
- 工厂模式针对每一种产品,提供了一个工厂类。
- 扩展时不需要修改原有类(增加新类即可)
模块化设计
设计一个模块时要考虑
- 这个模块应该提供哪些功能
- 这个模块应该怎样与其他模块交流信息
信息隐蔽
- 避免某个模块的行为干扰同一系统中其他模块
- 让模块仅公开让外界知道的信息,而隐藏其他一切功能
- 实现:通过接口设计实现,一个模块仅提供有限个接口。执行模块的功能或模块交流信息,必须且只须通过公有接口来实现。
内聚与耦合
- 内聚:模块内部各成分间相关联程度的度量
- 耦合:模块间依赖程度的度量
- 模块设计追求高内聚低耦合
阅读全文
0 0
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式~~~~~~~~~~
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- pwnable之dragon
- 屏幕适配以及ui切图规范和命名标准
- #HDU4372#Count the Buildings(第一类Stirling数经典)
- 顺序循环队列的实现(c语言)
- HTML5 总结
- 设计模式
- Linux类别开篇
- PythonWeb开发Django框架学习(六)Tempalte过滤器
- 棋盘问题
- 【原创】用拓展欧几里得解不定方程 ※POJ-1061-青蛙的约会
- KFC宅急送点餐系统开发 & MFC动态树形控件使用
- 套接字实现Udp服务器
- Struts2系列之HelloAction
- 预估表和索引空间容量的方法