`
java_hanyu
  • 浏览: 71355 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

面向对象设计第七话

阅读更多
设计原则与模式

软件设计的核心问题,可维护性和可复用性。

设计原则

(OCP)开-闭原则,软件实体应对扩展开放,对修改关闭,也就是屏蔽了修改对使用者的影响(简单工厂模式不支持开闭原则),实现开闭原则要尽量使用抽象,实质就是要尽量降低耦合性,封装可变性。可变性间不能混合。(基本原则)

(LSP)里氏代换原则,任何使用父类的地方都可以把父类替换为子类而不影响正常运行。(多态的使用)

(DIP)依赖倒转原则,要把依赖关系建立到抽象(接口、父类)上,不要依赖于实现(子类,实现类)。(避免类关系复杂,提高可扩展性),针对接口编程,推迟实现。

(ISP)接口隔离原则,使用多个专用接口替代单一接口。

(CARR)组合/聚合复用原则,使用组合或聚合关系,替代继承。

(LoD)迪米特法则(最少支持原则),一个对象或模块应该和其他对象和模块尽量少通信(依赖)。可以自己与自己通信(this),与自己的属性对象通信,与集合属性中的元素,与方法的参数对象通信,与自己创建的对象。



设计模式

工厂方法模式
   当我们想获得一相关产品类的时候,创建抽象工厂类,通过抽象工厂的抽象方法返回抽象产品类,创建具体工厂类,实现抽象方法,返回具体产品类

单例模式
class ClassA{ //懒汉式单例模式,在多线程访问的时候,会造成不同步的问题
   private static ClassA i=null;
   public static ClassA newInstance(){   //在方法上加同步,影响效率,相比较饿汗式单例模式好点
       if(i==null) i=new ClassA();
       return i;
   }
   private ClassA(){}
}
MVC模式
观察者模式
状态模式
   对象的行为依赖对象的状态
组合模式
   要在Java中实现一颗树,就一定会用到组合模式
   把树叶节点和树枝节点的共性取出来,通过Node屏蔽差异,同等处理
装饰模式
代理模式
适配模式
责任链模式
分享到:
评论

相关推荐

    c++面向对象程序设计第三版谭浩强教学大纲.pdf

    "C++面向对象程序设计第三版谭浩强教学大纲.pdf" 本资源摘要信息涵盖了C++面向对象程序设计的基本概念、数据存储、程序设计初步、函数、数组、指针、用户自定义数据类型、类和对象的程序设计等方面的知识点。 第一...

    面向对象分析与设计.pdf

    面向对象设计是在分析的基础上进行的,它关注于如何将需求转化为软件系统的内部结构。设计阶段的输出通常包括更详细的类图、活动图、序列图、状态图和组件图等UML模型。设计过程还会确定系统组件的接口和协作方式。 ...

    UML面向对象设计与分析

    《UML面向对象设计与分析》是清华大学出版社出版的一本专著,由牛丽平编著,主要探讨了面向对象设计的重要工具——统一建模语言(UML)。这本书深入浅出地介绍了UML的各种图表及其在软件开发过程中的应用,为读者...

    Java面向对象程序设计(第二版)

    封装是面向对象设计的核心概念之一。它指的是将对象的状态(属性)和行为(方法)捆绑在一起,并对外隐藏对象的实现细节。封装可以通过访问修饰符来实现,比如public、protected和private,它们控制类成员的可见性和...

    Java面向对象程序设计

    Java面向对象程序设计是编程领域中的重要主题,尤其在企业级应用开发中占据主导地位。本教程涵盖了这一关键概念,旨在帮助学习者深入理解和掌握Java的面向对象特性。以下是相关知识点的详细说明: 1. **面向对象...

    C++面向对象程序设计教程——课件PPT

    在“C++面向对象程序设计教程——课件PPT”中,我们可以深入学习这一主题,由陈维兴和林小茶编著,清华大学出版社出版。这套教程通过一系列的PPT章节,详细讲解了C++面向对象编程的关键概念。 首先,第1章“面向...

    C++ 面向对象程序设计(第七版) 周靖 译

    学习这本书,不仅需要掌握C++语法,还要理解面向对象设计原则,如SOLID原则,以及如何运用设计模式来解决实际问题。通过阅读源码,可以进一步了解优秀代码的编写规范和实践,对于提升编程水平大有裨益。教师手册和...

    面向对象分析与设计 麻志毅的课件

    7. **OO设计-下**:这部分可能是面向对象设计的进阶内容,可能涉及设计模式、接口设计、重构等高级话题。 8. **UML中的几种其他图**:除了上述提到的,UML还包括用例图、组件图、部署图等多种图表,这些图提供了...

    UML面向对象建模与设计答案

    《UML面向对象建模与设计答案》是一个包含详尽解答的资源,旨在帮助学习者理解和掌握UML(Unified Modeling Language)在面向对象设计中的应用。面向对象建模是软件开发过程中至关重要的一环,它通过可视化的方式...

    面向对象程序设计第一次离线作业作业.doc

    面向对象程序设计第一次离线作业 面向对象程序设计(Object-Oriented Programming,OOP)是一种编程范式,它将程序看作是一组对象的集合,对象之间通过消息进行交互。在这个离线作业中,我们将学习到面向对象程序...

    Java与UML面向对象程序设计.pdf

    第7章介绍了设计模式。第8章介绍软件重构。第9章简要介绍针对大规模和小规模的面向对象软件项目以及当前的一些主要开发方法。第10章介绍当前一些面向对象软件开发的工具软件。第11章给出了作者为开发更好的软件而...

    面向对象程序设计(Java)第七章例题代码-J7chapter2

    面向对象程序设计(Java)第七章例题代码-J7chapter2面向对象程序设计(Java)第七章例题代码-J7chapter2面向对象程序设计(Java)第七章例题代码-J7chapter2面向对象程序设计(Java)第七章例题代码-J7chapter2面向...

    李爱华、程磊_面向对象程序设计第二章案例源程序

    本资源集合是"李爱华"和"程磊"编写的《面向对象程序设计》一书第二章的C++语言基础案例源程序,涵盖了C++的基本要素,旨在帮助学习者通过实践理解C++的基础知识。 在第二章中,主要讨论了C++语言的基础,包括以下几...

    面向对象分析与设计

    8. **设计模式**:在面向对象设计中,设计模式是解决常见问题的成熟方案,如单例模式、工厂模式、观察者模式等,它们提供了在特定情境下的最佳实践。 9. **UML统一建模语言**:UML是面向对象分析与设计中的重要工具...

    面向对象程序设计

    面向对象程序设计

    面向对象分析与设计(UML2.0版)(PDF)

    在这个过程中,UML(统一建模语言)扮演着至关重要的角色,它是面向对象设计的标准化表示工具,特别是其2.0版本,进一步提升了表达能力和灵活性。 UML2.0版引入了更多的图表类型和符号,以更好地支持复杂系统的建模...

    面向对象程序设计c++课后答案

    - **面向对象设计 (OOD)**:设计系统架构,定义类及其相互关系。 - **面向对象编程 (OOP)**:实现设计阶段的成果,编写代码。 - **面向对象测试 (OOT)**:验证系统的功能是否满足需求规格。 - **面向对象系统维护 ...

Global site tag (gtag.js) - Google Analytics