7. 不知道怎么命名这个思考。不过在现实中,也有这样的例子,一个人,要像两个主管汇报。一个类,属于两个体系。现在利用业余时间在写一个taobao的应用。其中有些具体的实现类,比方说DAO类,还有业务的实现类。不知道该放入业务的包下面还是Taobao的包下面。
逻辑上的不清楚。基本思路的是有的。就是现在比较喜欢说的一句话。叫做需求和实现的分离。所以。现在采用的结果思路是。在具体业务类里。提供相应的接口,抽象或者工具类。而在Taobao包里实现具体操作。
8。昨天试着写用接口来梳理一个程序的逻辑。基本的结构是用最近比较喜欢的结构。一个接口。一个抽象的实现类。然后子类。起初写的时候,发觉很有问题。就是代码重复太多。比方说接口一个方法A。抽象类没有实现,然后在子类中实现。发觉这样做真的很麻烦。后来想到了模板模式。就利用了在虚拟类中实现了接口的方法,然后把一些每个子类不同的东西,一些方法用abstract方法交给子类实现。不过没有加final。
在这里的想法的根本原因在于实现和需求的分离。因为子类在这里的作用只有实现功能。而不是满足需求。而接口的作用则是表示相关的需求。虚拟类在其中的作用就是做一个转接。你叫他封装。
9。这样的一个程序。把一个可以并行的运算,分成一个个运算单元。然后用多线程来处理。后来自己写测试类的时候。有点不知所错。因为发觉要验证很多方面。实现起来相当的困难。后来突发奇想的换了种思路,写了两个测试类。一个测试时验证负责预算单元的类是否正确。另一个则是验证了。真正的多线程的程序是否完整(运算结果数量是否一致)。
如果提高一点。这是另一种功能专一化或者说解耦。两个类,一个是运算单元类,工作类。另一个类则是多线程的类,或者管理类。管理类没有必要去验证工作类的具体细节。
不过就这个例子来说,有一个特点。就是利用了jdk的api来处理被运算的类,做到类似于池。同时,在运算过程中。没有共享资源。所以可以清晰的分清楚管理类和工作类。不过后来想想,如果有,其实问题也不大。可以用spring的aop来处理马。
10 BlockingQueue及其子类
.最近写了一个多线程的程序。使用了BlockingQueue的几个实现类。其实用的Synchronous的实现类。因为我这个需求需要addall 也是同步的。但是,最后却是失败了。因为SynchronousQueue的同步,指的是获取和放入的同步。一个插入必须要等待下一个获取才能完成。 API中的解释是“其中每个插入操作必须等待另一个线程的对应移除操作”。而在我实际的使用中时。一旦调用put方法,就会发生阻塞。这才明白。原来SynchronousQueue其实是一个只有“一个元素”的队列。有两个线程A,B。A为生产者。把Item放入SyschronousQueue。然后由B从中取出。如果B没有取出item。则A线程会阻塞。
ArrayBlockingQueue和LinkedBlockingQueue。这个两个看名字就知道区别所在了,不用多说。有两点说明。
一。前者效率比后者高
二。凡是其继承自BlockingQueue的方法,并自己实现都是同步。反之,则不同步,则不同步。具体可以看源代码吧。比如该说poll,add等,就不同步。但是poll(time,timeunit)则是同步。
11.关于设计。
记得易中天说过一句话,凡事不要求最好,而要求最不差。其实设计中也是如此。最好的东西,往往投入也多。不能说不需要。性价比太低。
分享到:
相关推荐
数据库编程总结 数据库编程总结 数据库编程总结
Java Socket 编程总结 Java Socket 编程是Java语言中用于网络编程的主要技术之一。它允许开发者创建网络应用程序,通过Socket实现客户机/服务器结构的通信。在Java中,Socket编程主要是基于TCP/IP协议的网络编程。 ...
【二级C语言上机编程题技巧总结】 在计算机科学领域,C语言是一种基础且重要的编程语言,对于参加二级C语言上机考试的学生来说,掌握一定的编程题解题技巧至关重要。以下是一些有效的策略和方法: 1. **使用C语言...
### Python核心编程知识点总结 #### 一、书籍概述与价值 《Python核心编程》第二版是一本备受赞誉的经典Python教程,作者Wesley Chun凭借其深入浅出的讲解方式赢得了广泛认可。本书不仅覆盖了Python语言的核心内容...
UC编程技术总结 UC编程技术总结是一种编程技术的总结,这种技术涉及到静态库和共享库的生成、使用、连接等过程,同时也涉及到内存管理、虚拟内存管理技术等方面。 一、静态库和共享库 静态库和共享库是两种不同的...
- **书名**:《UNIX环境高级编程》第二版(中文版) - **适用对象**:本书是学习Unix/Linux系统开发的重要参考资料,特别适合那些希望深入掌握在Unix/Linux环境下进行C语言编程的读者。 - **内容特色**:书中不仅...
综上所述,C语言的编程总结非常丰富,涵盖了指针和数组、字符串操作、数据结构算法、预处理器、宏定义、断言、数据类型、运算符优先级等众多方面。理解并掌握这些知识点对于深入学习C语言乃至其他编程语言都具有重要...
VC编程经验总结(二)很好的前人总结资料
### 对于ISP编程进入不了编程模式的总结 在进行ISP(In-System Programming,即在线编程)操作过程中,经常会遇到无法进入编程模式的情况,尤其是在使用像智峰软件zf-007系列这样的下载器时更为常见。本文将针对ISP...
### Linux操作系统下C语言编程入门:经典总结 在IT领域,尤其是软件开发中,Linux操作系统与C语言结合,成为了一种极为重要的技能组合。本文旨在深入解析Linux环境下C语言编程的关键知识点,涵盖从基础概念到高级...
### Windows网络编程总结 #### 一、网络编程基础概述与要点 Windows下的网络编程主要依赖于Winsock API,这是微软为TCP/IP等网络协议提供的应用程序接口。本文将围绕这一主题展开,归纳网络编程中的关键点。 ####...
《程序员编程艺术第一~二十七章集锦与总结》是由July编写的,旨在教导读者如何进行有效的编程。这本书涵盖了从编程基础到高级技术的广泛内容,对于任何希望提升编程技能的人来说,都是一份宝贵的资源。书中的每章都...
Python编程笔记是对Python开发知识的全面总结和整理,旨在帮助读者深入理解和掌握这门流行的高级编程语言。笔记分为两大部分,第一部分是Python的核心概念,第二部分涉及更高级的主题。 在前言中,作者可能介绍了...
C语言编程常见问题总结 本篇文章总结了C语言编程中常见的问题和解决方法,涵盖了VC环境下的工具栏和字体颜色自定义、代码对齐、函数参数显示、括号匹配检测、文件资源获取、头文件自定义、运行环境颜色定义等问题,...
#### 标题:UNIX环境高级编程第二版 - **书籍概述**:本书作为《UNIX环境高级编程》的第二版,针对现代UNIX系统进行了全面更新与扩展,涵盖了UNIX环境下程序设计的核心技术和高级技巧。 - **目标读者**:适合于对...