设计模式还有行为模式。。。
来源:互联网 发布:舒尔特注意力训练软件 编辑:程序博客网 时间:2024/05/21 12:50
以下是一段我的实际代码过程和思考纠结过程:
//抽象业务逻辑执行线程
void * vertical_bhos (void * arg){
pthread_detach(pthread_self());
//直接线程完事???不行。。。行。。。
//仍然建议高层业务逻辑使用类,大不了传入多个底层类抽象引用呗。。。
//(但如此违背了最小知道原则?业务逻辑类也不能知道???理解有问题吧?)
//业务逻辑最终还是没成类,而是成了线程,此线程代表抽象业务逻辑,由此接口目前还是没有用到,直接指定了所有类和对象。
//小失败,还得继续改。。。
AGENT * thread_agent = (AGENT *)arg;
printf("vertical_bhos thread init\r\n");
ppositionClass pre_obj(v_position_file);
ppositionClass & pre = pre_obj;
if(0 != access(v_position_file,0))//检查文件是否存在,不存在就创建
{
printf("init pre file\r\n");
pre_obj.pposition_init();
}
ctlsequenceClass ctl_obj(38400,"/dev/ttySP0");
ctl_obj.serial_open();
ctlsequenceClass & ctl = ctl_obj;
sharemodeClass share_obj(ctl);
sharemodeClass & share = share_obj;
CHECK check_obj(ctl,share,thread_agent);
MOVE move_obj(ctl,share,pre,thread_agent);
sleep(1);
while(1)
{
run_ret = SUCCESS;
////类似这样,有些逻辑是控制对象的,这些在对象看来时外露逻辑,
///一旦有这些逻辑很蛋疼,一旦这些逻辑负载重就跟蛋疼
//一旦这些逻辑复杂了,就说明设计出问题了,
//要么逻辑下下压给被控制对象,要么控制逻辑上浮成新对象。
//这就是典型的会遇到的问题
//
//
//但是目前问题是,这些复杂的逻辑关系始终理不清楚。没法良好的
//分层理清,是否说明:
//抽象有问题
//分层有问题
if(0 == thread_agent->do_you_have_new_cmd(&temp_cmd))
{
总结:
有时候对象之间就是有复杂逻辑联系,浮不上也压不下,这层逻辑给谁都感觉不行,这层耦合怎么处理似乎都松不了。
后来才发现,而且原来还是“行为模式”来定义、关注、处理这种复杂联系。
优化:我使用了其中最简单的一种优化方式:直接新建一个“独立处理互动复杂逻辑关系”的对象。
//互动关系独立对象的优势在于,可以将原本分散于各自对象的逻辑分离到新的专属对象中,
//虽然在物理位置上看来,并没有分离,荏苒分散在各自的对象中,但其实,新对象的存在
//可以使得原来处于各自对象中的分散的、具体的,逻辑关系抽象接口化、集中化,这就是优势,
//关键就是可以抽象化的这个优势,一旦可以抽象化就能降低耦合。。。
//一定要注意互动独立对象要在原来各自的对象体中体现出封装性,不能暴露出互动对象体的内部逻辑
//以前一直不明白封装的作用,现在有点眉目了,对外封装的好处在于减少逻辑外露,这样才能
//良好的能把项目持续下去,否则会由于逻辑过多直接无法持续下去了。
//优先显示开始:
//原来通讯中转动命令是同一个VELC,一开始一个比较便利,但后期开始不足,
//所以需要将VELC扩展成VELC_CLOCKWISE和VELC_UNCLOCKWISE,这时就会发现
//如果没有”互动关系独立对象“,那么就会导致两边对象的大量改动,特别时涉及到
//逻辑的那种改动就特别要命,但是现在使用”互动关系独立对象“+“配合原两边对象中的抽象接口”
//那么,“配合原两边对象中的抽象接口”由于是深入到对象中去的,可能需要改动,但
//由于抽象的存在,改动肯定不大(否则就是抽象接口设计问题了),而将改动的重点移到了”互动关系独立对象“内部。
//这个内部的独立改动时轻松的。
//优势显示出来了吧。
- 设计模式还有行为模式。。。
- 行为模式设计模式
- 设计模式-----行为模式
- 设计模式:行为模式
- 设计模式-行为模式
- 设计模式-行为模式
- 设计模式-行为模式
- 设计模式-行为型模式
- 设计模式之行为模式
- c++ 设计模式---行为模式
- 设计模式之行为模式
- 设计模式总结-行为模式
- [设计模式]--行为型模式
- 设计模式—行为模式
- 设计模式总结-行为模式
- 设计模式:行为型模式
- 设计模式三-行为模式
- 设计模式之行为模式
- TK1学习笔记一:刷机
- caffe-windows 配置和cifar10数据集训练
- 【EJB】Developing EJB Applications -- Chapter 4(消息驱动Bean)
- java基础总结#多线程
- js的常用事件
- 设计模式还有行为模式。。。
- gdb用法详解
- 节俭排序算法
- Python 3基础教程27-字典
- 【计算机视觉】opencv靶标相机姿态解算1之基本概念(空间旋转、旋转轴)
- 静态转换和动态转换
- bzoj4881: [Lydsy2017年5月月赛]线段游戏
- Linux 下安装codeblocks的笔记:
- R-CNN阅读笔记