首页 > 其他分享 >每日总结

每日总结

时间:2023-12-20 23:35:01浏览次数:32  
标签:总结 关系 依赖 原则 对象 每日 面向对象 设计模式

1、UML(统一建模语言,包括视图,图,模型元素和通用机制四部分,5种视图和13个图)

2、类与类图
(1)类的属性即类的数据职责,类的操作即类的行为职责
(2)类图(Class Diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系
(3)在UML类图中,类一般由三部分组成:类名,属性和类的操作。

(PS:可见性:公有(+);私有(-);受保护(#)。为了保证数据的封装性,属性的可见性一般为private,通过公有的Getter和Setter方法供外界使用。参数个数是任意的,多个参数之间用“逗号”隔开。如果是构造方法,则无返回类型。)

3、类之间的关系(注意各种关系之间的符号表示)(关联关系全是实线,依赖关系是虚线)
(1)关联关系:
1)双向关联(直线)


2)单向关联(带箭头的实线)


3)自关联


4)多重性关联

 

5)聚合关系(聚合(Aggregation)关系表示整体与部分的关系;在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在;带空心菱形的直线表示)


6)组合关系(组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在;带实心菱形的直线表示)


(PS:聚合关系表示整体与部分关系比较弱,而组合关系较强;聚合关系通过对象注入方式实现,而组合关系通过在整体类的构造函数中实例化成员类来实现,共同点是一个类的实例为另一个类的成员对象)
(2)依赖关系(某个类的方法使用另一个类的对象作为参数;用带箭头的虚线表示。由依赖的一方指向被依赖的一方)


(3)泛化关系(即继承关系,描述父类与子类之间的关系;用带空心三角形的直线来表示;在Java语言中使用extends关键字、在C++/C#中使用冒号“:”来实现)


(4)接口与实现关系(接口之间也可以有与类之间关系类似的继承关系和依赖关系;接口和类之间存在一种实现(Realization)关系,在这种关系中,类实现了接口,类中的操作实现了接口中声明的操作;用带空心三角形的虚线来表示;在Java语言中使用implements关键字、在C++/C#中使用冒号“:”来实现)


4、顺序图是一种强调对象间消息传递次序的交互图,又称为时序图或序列图。

5、状态图用来描述一个特定对象的所有可能状态及引起其状态转移的事件。

6、对于面向对象的软件系统设计来说,在支持可维护性的同时提高系统的可复用性是一个核心问题,面向对象设计原则正是为解决这个问题而诞生的。 面向对象设计原则为支持可维护性复用而诞生,属于指导性原则,非强制性原则(7个,原则并不是孤立存在的,它们相互依赖、相互补充)

7、重点原则:(七大面向对象设计原则)
(1)单一职责原则(最简单的面向对象设计原则)
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中(将不同的变化原因封装在不同的类中,单一职责原则是实现高内聚、低耦合的指导方针)

(2)开闭原则(里氏代换原则,依赖倒转原则等原则都是开闭原则的实现方法)
软件实体应当对扩展开放,对修改关闭。(开闭原则是面向对象的可复用设计的第一块基石;开闭原则是指软件实体应尽量在不修改原有代码的情况下进行扩展;抽象化是开闭原则的关键;)

(3)里氏代换原则
所有引用基类(父类)的地方必须能透明地使用其子类的对象。(在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不一定成立;在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型)

(4)依赖倒转原则
高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。(要针对接口编程,不要针对实现编程;在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类;在代码中使用抽象类,而将具体类写在配置文件中;针对抽象层编程,将具体类的对象通过依赖注入(Dependency Injection, DI)的方式注入到其他对象)

8、设计模式
(1)定义:设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结
(2)目的:使用设计模式是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性
(3)设计模式的关键要素包括四个方面:
1)模式名称
2)问题
3)解决方案
4)效果

9、设计模式的分类
根据目的分为(模式是用来做什么的)创建型(Creational),结构型(Structural)和行为型(Behavioral)三类:

创建型模式主要用于创建对象(5种)
结构型模式主要用于处理类或对象的组合(7种)
行为型模式主要用于描述类或对象如何交互和怎样分配职责(11种)
(GoF一共描述了23种设计模式)

标签:总结,关系,依赖,原则,对象,每日,面向对象,设计模式
From: https://www.cnblogs.com/baijingyun/p/17917871.html

相关文章

  • Linux课堂知识总结8
    一.文件查找工具locate和find1.locatelocate依靠查询系统上预建的文件索引数据库来查询某个文件,按名字来查找,速度很快2.find实时查找工具,通过遍历指定路径完成文件查找whichLinuxwhich命令用于查找文件。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。文件......
  • 每日博客
    计原则是软件设计模式必须尽量遵循的原则,各种原则要求的侧重点不同。其中:开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭。里氏替换原则告诉我们不要破坏继承体系。依赖倒置原则告诉我们要面向接口编程。单一职责原则告诉我们实现类要职责单一。接口隔离原则告诉我们在设......
  • 2023-2024 20231313《计算机基础与程序设计》第十三周学习总结
    2023-202420231313《计算机基础与程序设计》第十二周学习总结作业速达作业课程班级链接作业要求计算机基础与程序设计第十三周学习总结作业内容《C语言程序设计》第12章并完成云班课测试作业正文我的作业目录教材总结总结学习过程的问题《C语言程序......
  • 2023.12.20——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.设计模式明日计划:学习......
  • 12.20每日总结
    今天复习了软件设计模式软件设计模式是在软件工程领域中,针对特定问题所提出的一套经过反复验证、被广泛接受并被证明能够解决相应问题的解决方案。这些解决方案通常描述了在特定情境下,如何以最佳的方式组织和结构化代码,以解决软件设计和开发中常见的重复性问题。设计模式不是一......
  • 12.20每日总结
    packagefanyi;importjava.awt.*;importjavax.swing.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassGUIextendsJFrameimplementsActionListener{privateJTextFieldoriginalText;privateJTextFieldtra......
  • cocoscreator使用总结
    1.背景图的大小超过父节点的大小,要使背景图不超过父节点,可以在父节点上增加一个mask组件2.layout组件可以设置垂直或水平布局,垂直时可以设从上到下或从下到上,水平布局可以设置从左向右,从右向左,可以方便用来设置文字在右下角之类的3.ScrollView的bar可以移除,view里面......
  • Kubernetes基础总结
    一、k8s简介kubernetes——容器、分布式架构kubernetes本质是一组服务器集群,可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。主要功能:自我修复弹性伸缩——自动调整运行的容器数量服务发现——自动找依赖负载均衡——自动实现请求的负载均衡版本退回存......
  • 12.20每日总结
    1、常用配置  此方法用来配置访问路由,如下代码配置了将"/hello"映射到HelloController这个控制器,通过以下的配置,http://localhost/hello 将访问HelloController.index()方法,而http://localhost/hello/methodName 将访问到HelloController.methodName()方法。publ......
  • 每日导数13
    越复杂越简单,构造问题已知函数\(f(x)=(\lnx-2x+a)\lnx\)\((1)\)当\(a=2\)时,求\(f(x)\)的单调性\((2)\)若\(f(x)\leq\dfrac{e^x}{x}-x^2+ax-a\),求实数\(a\)的取值范围.解\((1)\)\(a=2,f(x)=(\lnx-2x+2)\lnx=\ln^2x-2x\lnx+2\lnx\)\(f^{\prime}(x)=\dfrac{2\ln......