详细设计-设计讨论|学习笔记

简介: 快速学习详细设计-设计讨论

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术详细设计-设计讨论学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15973


详细设计-设计讨论


1、用第二个原则,创建者原则,现在的设计用的是信息专家的原则,从技术上可以把所有代码全部写在这,让 user查 loop,最后返回在 user 算,技术上是没有问题,代码主要分布在三个地方,分布在三个地方是原则问题,用的就是信息专家的原则,做一件事情谁具备完成事情的信息就应该在这里,算 bits 代码要在privde pom 里面,市面上极少有在 po上面写代码,po 是传数据的东西而已按照对象的原则有一个原则跟框架无关,因为不能破坏 po本身的特性,po 是一个跟平台无关的对象它不依赖于任何框架不能破坏,破坏之后 po就不对,不破坏 po的原则不依赖于框架。方法不依赖于框架,根据 po属性,算出来它的权限只依赖于 java

2、方法放在 privillagedao中,它跟 privillagemapper有关,可以把所有的mapper 放在 user中,dao 不要,分原则就是希望代码不要集中在一个对象中,而是按照信息专家的原则谁具备完成这个东西所需要的信息就由谁来完成所以用是第二个原则,信息专家原则,最终的结果就是高类聚低耦合,分成了三个dao,每个dao要干什么非常清楚代码在 dao里面有类聚性,如果放到一个对

象里没有耦合,高类聚低耦合是一对矛盾。

假如都不要 dao,没有耦合,类聚性和耦合性的基础上进行折中,增加两个 dao的对象把代码按照信息专家原则分下去以后,会使得代码的类聚性比较高假如在登录的时候第一次要读数据库,没有用过系统,上来什么都没有,都是要读数据库有用户抱怨因为都是在权限管理系统,都上班,早上八点钟上班一起登录每个人都不愿意早来或者晚来,正好在八点那一刻全登陆然后就发现早上登陆时候特别慢因为是后台的管理系统,大家在同一个时间上班所以大家都同一个时间登陆,大家下午六点钟下班,内存不会存两天,存两天没意义,内存存在晚上十点,盖掉即可

第二天登陆比较慢,谷歌的名言做系统要用最便宜的机器最精巧的办法,做最好的系统,登陆之后要做功能,一定会用到权限,但是因为是后台系统,都在同一时间登陆,在那个时间登陆非常慢,设计的目的就是为了提速,关键是把dao分开,role dao user dao privillage dao 三个的特征是重用性越来越大不管多少用户上来角色一定会用的。

比如有一万个用户,只有100个或者两百个角色不管有多少个角色,的权限的个数一定是用的整个系统做好以后就只有300权限或者400个权限,500个权限意味着可以把它放到缓存里当第一个用户过user dao 中缓存找是否有privillage pom,就不去数据库里面抄,直接从缓存中把 privillage pom拿出来,这是第一个地方可以加缓存,缓存中如果有 row,直接拿出来,不坐后面所有的动作,roe 和 privillage会高度重用,意味着后面的用户越登陆越快,上来之后只需要查自己的关系即可,每一个用户的角色不一样,关系变化,两部分缓存非常有意义,如果把 row全限制和 privillag全限制缓存在内存中,所有的用户上来之后,后面的用户会越来越快,后面用户要做的事情去查到底有什么样的角色,算

色的东西即可,层级是一个循环套着一个循环,如果后面不做,提速非常明显。

3、提速的原因是把 dao分开,提速对于外面的 user dao完全无感当数据从缓存里拿,还是从数据库里查的时候user dao是完全感觉不到它存在的。

所以在设计上分开的原因是预估到它有可能要提速,可以在另外两个 dao增加代码,不修改方法接口的表现,所以外面不会发生改变,分配所达成的效果是数据的封装性会比较好,改变裂变的逻辑就不会影响外面的东西面向对象的设计其实

封装性是一个最简单的最容易达成的一个特性,特性会产生非常有效的效果。

面向对象中间的信息专家的原则,包括创建者的原则是最基本的原则,但也是最有用的原则,代码中间90%的情况下都在考虑这两个最基本的原则,所谓的更高深的原则,能用的场合不多,它会在一些很特定的场合能用觉得很精巧,很精妙,但是其实很多的脏活和累活得依靠这两个原则做所以每一行代码在写的时候都要

考虑这个原则。

相关文章
|
BI 测试技术 程序员
【软件工程题库】第四章 概要设计
【软件工程题库】第四章 概要设计
2188 1
|
存储 算法 搜索推荐
一文探究系统分析与设计的逻辑性
「软件分析」与「软件设计」这样的词眼经常听到,然而要真正理解「软件分析」和「软件设计」的本质是比较难的,本文带你了解软件分析与设计的「逻辑性」到底是什么。
1036 24
|
6月前
|
关系型数据库 网络安全 数据库
一些数据库设计的基本知识和学习指导
【6月更文挑战第17天】**数据库设计概览** - 从需求到结构,转化业务规则为关系型数据库。 - 遵循ER模型,定义实体、属性与联系。 - 步骤:需求分析、数据收集、ER图到物理设计,及优化。 - 范式理论确保数据无冗余,1NF至5NF逐步规范。 - 反规范化平衡查询效率与数据一致性。 - 优化策略:索引、简化查询、分区、延迟加载和并行处理。 - 安全措施:权限控制、加密、审计日志和防火墙。 - 实践与理解原理是成功设计的关键。
91 3
|
算法 数据可视化 测试技术
【UML】信息系统分析与设计知识点总结(上)
【UML】信息系统分析与设计知识点总结
166 0
|
测试技术 uml
【UML】信息系统分析与设计知识点总结(中)
【UML】信息系统分析与设计知识点总结
130 0
|
存储 测试技术 uml
【UML】信息系统分析与设计知识点总结(下)
【UML】信息系统分析与设计知识点总结
360 0