8月 172019
 

转载自:https://www.cnblogs.com/wang-meng/p/f1532cf23ce049ce63b4bdd62d53659d.html

前言

最近在项目上线的时候发现一个问题,从后台报错日志看:java.lang.UnsupportedOperationException异常
从代码定位来看,原来是使用了Arrays.asList()方法时把一个数组转化成List列表时,对得到的List列表进行add()和remove()操作, 所以导致了这个问题。

 

对于这个问题,现在来总结下,当然会总结Arrays下面的一些坑。 Continue reading »

6月 142019
 

先写在博客里,给自己挖坑吧,提醒一下自己……捂脸

主要想读读源代码,并将源代码阅读所学的东西记录下来,目前想做这些:

  • spring
  • dubbo
  • mybatis/mybatis plus
  • pagehelper
  • google guava

希望有时间可以学习这些吧

6月 292011
 

  转载地址:

http://hi.baidu.com/hhp001/blog/item/3539f011188adc5d21a4e9ee.html

无论是更新Win7的SP1(32位),还是64位的Win7,运行问情篇时可能会有如下提示


需要下载新的免cd补丁来解决问题。

 

首先要下载升级补丁(1.20),地址:http://u.115.com/file/cz9bofz0

解压缩后执行patcher.exe,找到你的仙剑3外传目录后点确定即可升级

 

然后打免cd补丁,地址:http://u.115.com/file/cz9bof1s

解压缩后将其中的pal3a.exe,pal3a.dll复制到游戏目录下替换原文件


并导入注册表即可

=====================================================

按照以上过程便可继续玩仙剑3外传–问情篇了。但也有人导入注册表后依然出现错误的提示

这是因为注册表的内容仍然没有自动导入,需要手动更新注册表

按Win+R,输入regedit回车打开注册表编辑器

依次展开左侧的HKEY_LOCAL_MACHINESoftwareSoftstarPal3a,双击右侧的CDriver项(如果没有就新建一个,类型为“字符串值”),输入“.basedata”(没有引号)确定后退出就可以了。

 

2月 242010
 

转载地址:http://www.lifevv.com/sysdesign/doc/20071211214255251.html

 

GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”。GRASP提出了几个基本原则,用来解决面向对象设计的一些问题。

 

Craig Larman氏在《Applying UML and Patterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的 是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以 及明确类之间的相互关系等等。GRASP可以说是GoF等设计模式的基础。

 

GRASP概要

 

GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”,用职责设计对象:”Designing Objects with Responsibilities”。它包含了9个基本模式:
1,信息专家 (Information expert)
2,创建者 (Creator)
3,高内聚 (High Cohesion)
4,低耦合 (Low coupling)
5,控制器 (Controller)
6,多态性 (Polymorphism)
7,纯虚构 (Pure Fabrication)
8,间接性 (Indirection)
9,变化预防 (Protected Variations)

GRASP的主要特征:
– 对象职责分配的基本原则。
– 主要应用在分析和建模上。

GRASP的核心思想的理解:
自己干自己的事(职责的分配)
自己干自己的能干的事(职责的分配)
自己只干自己的事(职责的内聚)

面向对象设计

所谓面向对象设计,就是在系统设计的过程中,通过把系统分成相对独立但又互相联系的对象组合的一种设计方法。
对象具有属性和 行为,对象间通过消息进行交互(协作)。

面向对象设计一般有以下几个关键步骤:

1,发现对象。找出系统应该由哪些对象构成。
2,对象的属性。对象具有哪些属性。
3,对象的行为。对象具有 哪些行为,或者说对象需要做什么,它的职责是什么。
4,对象的关系。对象与对象之间的关系是什么,怎样进行交互,协作等等。

发现对象

对象的发现超出了本文的讨论范围。我们简单地介绍一下对象发现的过程与手段。
一般意义上的对象是现实世界上物体的抽 象。也就是说,现实世界里有什么物体,就有什么对象;物体存在什么属性,对象就有什么属性。
我们可以用“名词筛选法”来发现系统的对象。
比 如,一个学生考试成绩管理系统,有以下简单的用例:
– 管理员创建题库(把题条加入题库)
– 系统根据管理员输入的某些条件随机生成试题
– 学生成绩入库与管理
我们可以通过字面意思找出名词,就可以找出“管理员”,“题条”,“题库”,“试题”,“学生”,“学生成绩”等几个对象。

一 般通过这种方法(名词筛选法)就可以找出系统的绝大部分对象。

对象行为

行为是对象应该执行的动作,也就是对象的职责。对象具有哪些职责呢?相对于上面所说的“名词筛选法”,可以简单地用“动词筛 选法”来发现“对象的行为”。
比如,上面的“学生考试成绩管理系统”一例中,有“创建题库”,“输入(条件)”,“生成试题”,“成绩入库”, “成绩管理”等动词,也就是说,系统的对象至少具有以上这些行为(或职责)。
有时,我们可能还会发现某些“行为”的粒度过大,这时,可以通过进一 步细化用例的描述,来发现更多更细的“行为”。这里不再详述。

问题1:找出对象的行为(职责)之后,怎么样分配这些行为呢?也就是说怎么 确认“行为”属于哪个对象呢?

对象关系

系统的所有对象不可能是一个个单独存在毫无关系的个体,它们或多或少的有着各种联系(协作关系)。

问题2: 如果2个对象之间有协作关系,他们之间最好通过什么样的方式协作呢?

对象扩展特性
问题3:已经被抽象出来的对象,如何面对将来可 能发生的变化呢?

GRASP提出9个基本模式,用于解决以上设计过程中遇到的各种问题。