自己CSDN blog
上回收来的,以后都集中到这里了。
模式是一种对现实世界的概念抽象,建筑模式,设计模式,营销模式,商业运作模式各行各业都有自己的模式。
这里说的设计模式是软件设计里的模式,主要是指面向对象的软件设计。遵照设计模式,可以有效的提高软件的可维护性和可复用性,提高开发软件的效率,避免过多的出现再造轮子的现象。
我学习模式是从知道大名顶顶的四人帮的力作《设计模式》,真正感觉到了设计模式给软件设计所带来的诸多好处。《设计模式》内容精练,实例较少,我的理解力太差,实际学习中,我是结合jeffyyan的java于模式学的。
设计软件的几个原则,这个也是设计模式的精髓所在:
1.开-闭原则
1).客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件系统要有一定的灵活性和适应性。
2).已有的模块,特别是抽象层的模块不能修改,保证软件系统的稳定性和延续性。
解决问题的关键是抽象化,把它与具体实现分离开来。接口(interface),抽象类的应用
对可变性封装:将可变性封装到一个对象里。
2.抽象类
抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同属性和方法。
注意:好的继承关系中,只有叶节点是具体类,其他节点应该都是抽象类,也就是说具体类
是不被继承的。将尽可能多的共同代码放到抽象类中。
3.里氏代换原则
在有基类出现的地方,子类均可以替代。
当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,
一种是应用组合聚合关系建立关系。
不要为了使用某些类的方法(功能)而滥用继承。
4 依赖倒转原则
抽象不应该依赖与细节,细节应当依赖与抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类。
主要是在构造对象时可以动态的创建各种具体对象,当然如果一些具体类比较稳定,就不必在弄一个抽象类做它的父类,这样有画舌添足的感觉
5 接口隔离原则
定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干
6 合成/聚合原则
尽量使用合成聚合原则,少用慎用继承。
合成:一荣俱荣,一损俱损,整体和部分的生命周期是一样的
聚合:部分可以是整体的一部分,也可以脱离整体而存在。
区分Has a和Is a的问题
7 迪米特法则
最少知识原则。不要和陌生人说话。
分享到:
相关推荐
《网络综合应用——PHP开篇:合作共赢》 在IT领域,PHP是一门极其重要的编程语言,尤其在网络系统开发中占据着举足轻重的地位。PHP的开源特性是其魅力所在,这一理念蕴含的合作共赢精神不仅是互联网行业繁荣的关键...
作者张逸通过对设计的本质进行剖析,结合丰富的实例和实践经验,帮助读者理解设计的重要性和灵活运用设计模式的方法。 #### 设计,看上去很美 本书开篇即强调设计之美在于其无限的可能性和创造性。设计没有绝对的...
首先,文章开篇即明确阐述了研究的核心内容——系统概述。其次,深入解析了系统需求分析的必要性,明确了“目标任务”,这一过程涵盖了业务层面的剖析、业务流程的梳理以及用例的详细探讨,从而更精确地界定了系统...
首先,文章开篇即明确阐述了研究的核心内容——系统概述。其次,深入解析了系统需求分析的必要性,明确了“目标任务”,这一过程涵盖了业务层面的剖析、业务流程的梳理以及用例的详细探讨,从而更精确地界定了系统...
然后,针对开发灵活、高效的并发式网络应用程序的需要,本书提供了重要的设计空间、模式和原则。本书作者从专家角度向你展示,在运用C++和模式效地开发面向对象网络应用时,应当如何提高你的设计技能。 包括中英文版...
然后,针对开发灵活、高效的并发式网络应用程序的需要,本书提供了重要的设计空间、模式和原则。本书作者从专家角度向你展示,在运用C++和模式效地开发面向对象网络应用时,应当如何提高你的设计技能。 包括中英文版...
Before/After模式是一种设计模式,用于处理对象状态的变化,特别是在并发环境中。该模式提供了一种方法来控制对象的状态转换,从而确保在多个线程之间共享对象的安全性。这部分内容会详细介绍Before/After模式的工作...
在C++编程中,设计模式是一种常见且有效的方法,它可以帮助我们抽象出问题的模型,如同讲述故事一样清晰地表达解决方案。理解并运用设计模式,可以提升代码的可读性和可维护性。 "18 函数式编程之组合性:函数式...
总则:**标准开篇强调了智能化设计的重要性和基本原则,明确指出智能化系统的规划应兼顾安全性、舒适性、便捷通信、高效管理等多方面需求,同时考虑到投资控制、设备选择、施工实施、运维便利及管理规范等实际考量...
- **设计模式**:书中还介绍了一些常用的设计模式,比如工厂模式、单例模式等,这些模式能够帮助解决常见的设计问题。 - **架构设计**:讨论了不同类型的软件架构模型,如分层架构、微服务架构等,并解释了每种架构...
- **设计模式**:讲解了一些常用的设计模式,帮助开发者解决常见的设计问题。 5. **实现与测试** - **编码实践**:讨论了编写高质量代码的最佳实践。 - **单元测试与集成测试**:强调了测试在确保软件质量中的...
对于一些常见的编程模式和约定,如命名规范、注释规范等,作者建议遵循广为接受的标准,比如《C程序设计语言》一书中的风格指南。 #### 六、示例对比 ##### 6.1 好的与不好的示例 书中使用了大量的实例来对比好的和...
在操作模式方面,文档讲解了如何进入和退出低功耗模式,以及在低功耗应用中的一些原则。此外,还讨论了未使用引脚的处理方法,如何将它们配置为减少功耗或与其他功能复用。 CPU部分详细描述了MSP430G2553的寄存器和...
- **方法论设计原则**:探讨了如何设计有效的敏捷方法论,以适应不同规模和类型的项目需求。 - **XP(极限编程)透析**:对一种具体的敏捷方法论——极限编程进行了详细介绍。 - **为何需要方法论**:阐述了方法论...
5. **第11章:电流编程模式** - 探讨了一种特殊的控制策略——电流编程模式,旨在通过调节开关周期内的电流波形,实现更精确的输出电压控制。 ### 第三部分:磁性元件 1. **第12章:基本磁学理论** - 介绍了磁性...