1,几点总结
1,命名的规范性
2,加强对安全代码的校验 比如是int.parse
3,业务逻辑与界面逻辑的分离,降低耦合度
4,现有的代码的改动是在不影响之前的代码的基础之上的,也就是遵循 开放-封闭原则
2,UML图的理解
1,类的表示 privacy - public + protected #
2,接口的顶端有<<interface>>的标识
3,继承关系用空心三角形+实线表示
4,实现接口用空心三角形+虚线表示
5,聚合表示一种弱的拥有关系,用空心的菱形+实线箭头表示
合成表示一种强的拥有关系,用实心的菱形+实线箭头表示
6,依赖关系(动物依赖于水)用虚线箭头表示
编程是一门技术,更是一门艺术,加油!
3,简单工厂模式的到代码结构图
代码实现
```
usingSystem;
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
usingFactoryMode;
publicclassTempMode:MonoBehaviour
{
privatevoidStart()
{
UseFactory();
}
publicvoidUseFactory()
{
LoadAssetloadAsset =LoadFactory.CreateLoadAsset(LoadType.Resource);
loadAsset.Load("name",(www) => {});
}
}
namespaceFactoryMode
{
publicenumLoadType
{
Resource,
Local,
Remote
}
publicabstractclassLoadAsset
{
publicabstractvoidLoad(stringname,Action finished);
}
publicclassResourceLoad:LoadAsset
{
publicoverridevoidLoad(stringname,Action finished)
{
Debug.Log("ResourceLoad");
}
}
publicclassLocalLoad:LoadAsset
{
publicoverridevoidLoad(stringname,Action finished)
{
Debug.Log("LocalLoad");
}
}
publicclassRemoteLoad:LoadAsset
{
publicoverridevoidLoad(stringname,Action finished)
{
Debug.Log("RemoteLoad");
}
}
publicstaticclassLoadFactory
{
publicstaticLoadAssetCreateLoadAsset(LoadTypeloadType)
{
LoadAssetloadAsset =null;
switch(loadType)
{
caseLoadType.Resource:
loadAsset =newResourceLoad();
break;
caseLoadType.Local:
loadAsset =newLocalLoad();
break;
caseLoadType.Remote:
loadAsset =newRemoteLoad();
break;
default:
break;
}
returnloadAsset;
}
}
}
```