关于面向对象设计的相关讲解
设计模型的元素很多都是在分析模型中使用的UML图。差别在于这些图被精化和细化为设计的一部分,并且提供了更多的与实现相关的特殊细节,突出了架构的结构和风格、架构内存在的构件以及构件和外界之间的接口。
1、面向对象设计模型
设计建模任务:
架构设计
包和子系统设计
类设计
持久化设计
(1)构件图
(2)部署图
(3)状态机图
2、架构设计
(1)4+1架构视图
逻辑视图,开发视图,进程视图,物理视图,场景视图
(2)逻辑视图设计
软件的逻辑结构,用于支持功能性需求。
(3)进程视图设计
软件的进程架构,针对非功能性需求。
构成进程的任务是彼此相互分隔的控制线程,这个软件被划分成这样一组彼此独立的任务。(部署图)
(4)开发视图设计
软件的开发架构,即如何分解成实现单元,是需求分配的基础也是开发组织结构的基础。
如图7-7水平分割方案,6个包分配给6个开发组且处于架构的不同层次,开发组可按技术层次分配人员。
下图垂直分割方案,按业务逻辑在多个开发组分配任务,每个开发组必须具备综合开发能力。
(5)物理视图设计
软件的物理架构,针对非功能性需求的可用性、可靠性、可扩展性等。(部署图)
(6)场景视图设计
场景是用例的实例,将4个视图有机第联系起来。它是发现架构元素的动力,担负起验证和说明的角色。
3、包设计原则
重用-发布等价:重用粒度等于发布粒度;
共同重用:包中所有类一起被重用;
共同封闭:包中的所有类对同类型的变更封闭;
无环依赖:包之间无环依赖结构;
稳定依赖:包应该依赖比他更稳定的包;
稳定抽象:最稳定的包即最抽象,不稳定包是具体包。
4、类设计
单一职责、李氏替换、依赖倒置、接口隔离、开发-关闭原则。
5、持久化设计
(1)实体对象建模;
(2)数据库设计;
(3)持久化框架。
6、面向对象设计过程
识别设计元素
确定架构风格,设计整体结构
构件级设计
7、子系统设计过程
(1)对子系统职责进行定义,即接口的定义;
(2)通过职责分配确定子系统中的元素,由构件等元素来实现职责;
(3)对子系统中各元素进行设计,即类设计(静态结构和动态结构);
(4)确定子系统间的依赖关系。
8、构件级设计的步骤
更新Use-case Realization
子系统的设计:对每个接口的每个操作设计交互图和VOPC类图,类似于系统的设计,即Use case realization
类的设计:
(1)创建设计类:将分析类映射成设计类;
(2)定义操作:实现单一的职责;
(3)定义方法:对操作的内部实现进行描述;
(4)定义状态:描述对象的状态对行为的影响,将对象的属性和操作关联起来;
(5)定义属性:包括方法中的参数、对象的状态等;
(6)定义依赖:类与类之间的存在关系,非结构关系;
(7)定义关联:对关联关系的细化,包括聚合与组合、导向性、多重性、关联类;
(8)形成设计类的规格说名书。
9、时序图
从用例事件流中提取出各类事件并确定事件交互行为的发送对象和接受对象,用时序图把事件序列以及事件与对象的关系表示出来。
10、状态机图
状态图描绘事件与对象状态的关系。当对象接受了一个事件以后,引起的状态改变称为“转换”。
用一张状态图描绘一类对象的行为,它确定了由事件序列引出的状态序列。仅考虑具有重要交互行为的那些类。
事件跟踪图中入事件作为状态图中的有向边(即箭头线),边上标以事件名。两个事件之间的间隔就是一个状态。
事件跟踪图中的射出的箭头线,是这条竖线代表的对象达到某个状态时所做的行为(往往是引起另一类对象状态转换的事件)。
本文讲解了关于面向对象设计的相关内容,更多相关推荐请关注php中文网。
相关推荐:
php文件包含目录配置open_basedir的使用与性能分析
php文件包含目录配置open_basedir的使用与性能分析
Atas ialah kandungan terperinci 关于面向对象设计的相关讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan bahasa Go untuk melaksanakan pengaturcaraan dipacu peristiwa berorientasikan objek Pengenalan: Paradigma pengaturcaraan berorientasikan objek digunakan secara meluas dalam pembangunan perisian, dan pengaturcaraan dipacu peristiwa ialah model pengaturcaraan biasa yang merealisasikan aliran program melalui pencetusan dan pemprosesan peristiwa. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk melaksanakan pengaturcaraan dipacu peristiwa berorientasikan objek dan memberikan contoh kod. 1. Konsep pengaturcaraan dipacu peristiwa Pengaturcaraan dipacu acara ialah model pengaturcaraan berdasarkan peristiwa dan mesej, yang memindahkan kawalan aliran program kepada pencetus dan pemprosesan peristiwa. dalam acara didorong

Anotasi @JsonIdentityInfo digunakan apabila objek mempunyai hubungan ibu bapa-anak dalam perpustakaan Jackson. Anotasi @JsonIdentityInfo digunakan untuk menunjukkan identiti objek semasa bersiri dan penyahsirilan. ObjectIdGenerators.PropertyGenerator ialah kelas ruang letak abstrak yang digunakan untuk mewakili situasi di mana pengecam objek yang akan digunakan berasal daripada sifat POJO. Syntax@Target(value={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})@Retention(value=RUNTIME)public

Menganalisis Corak Flyweight dalam Pengaturcaraan Berorientasikan Objek PHP Dalam pengaturcaraan berorientasikan objek, corak reka bentuk ialah kaedah reka bentuk perisian yang biasa digunakan, yang boleh meningkatkan kebolehbacaan, kebolehselenggaraan dan kebolehskalaan kod. Corak flyweight ialah salah satu corak reka bentuk yang mengurangkan overhed memori dengan berkongsi objek. Artikel ini akan meneroka cara menggunakan mod flyweight dalam PHP untuk meningkatkan prestasi program. Apakah mod flyweight? Corak flyweight ialah corak reka bentuk struktur yang tujuannya adalah untuk berkongsi objek yang sama antara objek yang berbeza.

Bahasa Go menyokong pengaturcaraan berorientasikan objek melalui definisi jenis dan perkaitan kaedah. Ia tidak menyokong warisan tradisional, tetapi dilaksanakan melalui gubahan. Antara muka menyediakan ketekalan antara jenis dan membenarkan kaedah abstrak ditakrifkan. Kes praktikal menunjukkan cara menggunakan OOP untuk mengurus maklumat pelanggan, termasuk mencipta, mendapatkan, mengemas kini dan memadam operasi pelanggan.

Amalan terbaik OOP dalam PHP termasuk konvensyen penamaan, antara muka dan kelas abstrak, pewarisan dan polimorfisme, dan suntikan kebergantungan. Kes praktikal termasuk: menggunakan mod gudang untuk mengurus data dan menggunakan mod strategi untuk melaksanakan pengisihan.

Bahasa Go menyokong pengaturcaraan berorientasikan objek, mentakrifkan objek melalui struct, mentakrifkan kaedah menggunakan penerima penunjuk, dan melaksanakan polimorfisme melalui antara muka. Ciri berorientasikan objek menyediakan penggunaan semula kod, kebolehselenggaraan dan enkapsulasi dalam bahasa Go, tetapi terdapat juga pengehadan seperti kekurangan konsep tradisional kelas dan pewarisan dan hantaran tandatangan kaedah.

C# (CSharp) ialah bahasa pengaturcaraan berorientasikan objek yang berkuasa dan popular yang digunakan secara meluas dalam bidang pembangunan perisian. Semasa proses pembangunan C#, adalah sangat penting untuk memahami konsep asas dan prinsip reka bentuk pengaturcaraan berorientasikan objek (OOP). Pengaturcaraan berorientasikan objek ialah paradigma pengaturcaraan yang mengabstraksi perkara di dunia nyata menjadi objek dan melaksanakan fungsi sistem melalui interaksi antara objek. Dalam C#, kelas ialah blok binaan asas pengaturcaraan berorientasikan objek dan digunakan untuk menentukan sifat dan tingkah laku objek. Apabila membangunkan C#, terdapat beberapa prinsip reka bentuk yang penting

Tiada konsep kelas dalam erti kata tradisional dalam Golang (bahasa Go), tetapi ia menyediakan jenis data yang dipanggil struktur, yang melaluinya ciri berorientasikan objek yang serupa dengan kelas boleh dicapai. Dalam artikel ini, kami akan menerangkan cara menggunakan struktur untuk melaksanakan ciri berorientasikan objek dan menyediakan contoh kod konkrit. Definisi dan penggunaan struktur Pertama, mari kita lihat definisi dan penggunaan struktur. Di Golang, struktur boleh ditakrifkan melalui kata kunci jenis dan kemudian digunakan di mana perlu. Struktur boleh mengandungi atribut
