- 浏览: 218127 次
- 性别:
- 来自: 广州
最新评论
-
microwindlab:
你不应该加 --shell 参数,因为 --shell run ...
由mongodb的维护引发的 grep,awk,sed 与管道的应用 -
Jerryhome:
楼主超牛,值得好好学习
windows系统下的进程监测程序--实现过程记录 -
xb_91674981:
学习一下,模式在程序设计是很重要
《大话设计模式》一书的所有代码和UML类图 -
Jason(aijun):
正在学习,非常感谢分享。
《大话设计模式》一书的所有代码和UML类图 -
wurb_travelsky:
正在看这本书,C#的代码倒也不影响阅读
《大话设计模式》一书的所有代码和UML类图
文章列表
设计原则与设计模式定义
- 博客分类:
- 设计模式
从《深入浅出设计模式》摘录的设计原则:
1. 识别出应用变化的部分,并把其与不变的分离(封装变化)。Identify the aspects of your application that vary and seperate them form what stays the same.
2. 面向接口编程,不要面向实现编程。Program to an interface, not an implementation.
3. 多用组合,而不是继承。Favor composition over inheritance.
4. 在交互的对象间,尽量设计得松耦合。Strive ...
从今天开始,学习《深入浅出设计模式》这本书,并每看完一章就自己写些代码来加深理解,并把文中的一些知识写出来,和代码一起更新到博客里。(中文和英文版pdf,另找地址上传,建议英文版,比较清晰)
对于设计模式,先摘抄此书中文版的一句话:
信耶稣的人都要读圣经,而信
OO
的人都要读四人组的《设计模式》
另一句:使用模式的最好方式是:把模式装进脑子,然后在你的设计和已有的应用中,寻找何处可以使用它们。
在第一章,先是以一个模拟鸭子程序开始,一个Duck的父类,有很多个继承Duck类的具体鸭类。目前遇到这样的情况:
1.
...
如题,把《大话设计模式》一书的所有代码和UML类图写出来,见附件,其中的“大话设计模式笔记.rar”包含uml类图,有doc版和用starUml画的.uml文件。
StarUml的版本为:5.0.2
书中代码为c#的,我全部改写成java的,还是鼓励大家买原版书啦。我写出来只是练练手,无它。
P.S:最后一个访问者模式,因为没看懂,没写代码,只画了类图。
创建一个新浪微博(下面简称“微博”)应用其实很简单,现以我做的健康小助手为例,详细的说明整个过程。
说明微博的网页应用是基于php的,所以要学会一点php,附件有一个php的简明教程,教程的36页至53页是说语法的,差不多够用的了,不够就再翻pdf或问谷老师。
首先是创建一个应用。在微博应用开发首页:http://open.weibo.com/devel.php,
用户用微博账号登录后可以“创建应用”,在弹出窗口“选择你要创建的应用类型”里选择“站内应用”(以网页形式运行的,若要做桌面客户端或手机端则选“普通应用”)。
如果是第一次创建应用,需要编 ...
从今天开始,重写《数据结构C语言版:严蔚敏》一书里的程序。毕竟数据结构是一个程序员的内功。以后定期每隔一天更新一次。若对数据结构不熟悉的同学可以一看,现在先写了顺序栈的代码
P.S. 所有代码在C-free 5.0上通过编译运行,程序里用到一个common.h的头文件,里面保存一些常用的宏定义
栈的特性:后进先出。。。
以下是顺序栈的结构:SeqStack.h
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct SqStack{
SElemType *base;
SElemT ...
单位的客服中心的服务器有个接口程序,这三天都出现了自动退出的情况,这接口程序是管理打进来的电话分配到各值班的客服人员那里,接口程序是由其他公司开发的,以前也出现过自动退出的情况,但开发方一直没给出解决方案。
由于这接口一退出,那外面的用户就打不进电话来,结果用户就投诉到领导那里,领导就骂下面的员工。。。(低人一级就得挨骂,哎)
最近三天频繁自动退出,我就产生自己开发一个监测该接口程序的程序。当接口程序自动退出时,就重启服务。本来用java的话,我觉得挺简单的,但服务器上没装jdk,一般服务器不能乱装程序的,我就打消了用java实现的念头,后来一想,其实用linux的命令也很简单,写个s ...
发短信:手机短信通常a个字就分一页,分页之前在短信之前都要加上(1/n)、(2/n)...,当然啦,这个要加到每页的字数里面。短信放送之前,头部加上“您好:”,结尾要加上“【AB公司】”,这些也当然要加入字数里面,现在请写一方法来显示每条短信的内容。程序的难点在于怎样获取总页数,而且要判断在什么情况下是不能显示所有的信息内容的
package com.fun;
import java.util.Scanner;
public class MessagePaging {
private static final int MaxWordsOnePage = 10;
pri ...
公交线路抓取程序是以前在公司没事做时,自己买了部mb525(android手机,现手机不是我的了)时,想试下自己开发软件,又想到广州公交太多,在外面时手机查公交线路只能通过上网查,自己又不想浪费手机流量,就打算开发一个公交线路查询软件,在开发这软件就得先抓取公交线路数据。所以写了这程序,但原公司的程序没带走,现在重新写过,由于有段时间没写程序了,自己水平一般,程序质量不高,还请大家多提意见
程序的结构大概是:Main程序运行,定义了四个接口:
IdbUtil:负责数据的写入,我提供两种写入,Mysql数据库和txt文件,实现类分别是:DbUtilQueryRunner和DbUtilF ...
希望多读点书,现先记录下在豆瓣上看到的一些好书,以后每一个月至两个月,限定自己看完一本。参考http://www.aqee.net/2011/03/07/what-is-the-single-most-influential-book-every-programmer-should-read/,下列书先后排序。
1.C程序设计语言 第2版
2.tcp/ip详解 卷1:协议
3.Linux内核设计与实现
4.代码大全 第二版
5.程序员修炼之道
6.计算机程序的构造与解释
7.重构:改善既有代码的设计
8.算法导论 第二版
9.人月神话
10.设计模式
11.计算机程序 ...
Splits this string around matches of the given regular expression
.
The array returned by this method contains each substring of this string that
is terminated by another substring that matches the given expression or is
terminated by the end of the string. The substrings in the array are in ...
apache的commons-dbutils包里:
org.apache.commons.dbutils.QueryRunner
可以方便地通过jdbc访问数据库,用法:
QueryRunner runner = new QueryRunner(dataSource);
一些方法如下:
public int[] batch(String sql, Object[][] params); //批量更新
public <T> T query(String sql, Object param, ResultSetHandler<T> rsh) ...
今天看到一个帖子关于Collection和ArrayList的remove操作,现在记录下:
Collection的是 boolean remove(Object o); 删除指定的对象,若不存在则返回false
ArrayList的是 public E remove(int index); 删除指定索引的对象,返回删除的对象
http://lavasoft.blog.51cto.com/62575/99157
从这篇博客得知:
必须从同步环境内调用wait()、notify()、notifyAll()方法。就是说必须在synchronized(obj){}代码块内或synchronized方法内才可以调用wait()、notify()、notifyAll()
线程不能调用对象上等待或通知的方法,除非它拥有那个对象的锁。
wait()、notify()、notifyAll()都是Object的实例方法。与每个对象具有锁一样,每个对象可以有一个线程列表,他们等待来自
该信号(通知)。线程通过执行对象 ...
public class ThreadStaticInt extends Thread{
private int x = 0;
public void run(){
System.out.println(++x);
}
}
public class TestThreadStaticInt {
public static void main(String[] args) {
for(int i = 0; i < 10; i++){
Thread t = new ThreadStaticInt();
t.start();
}
...
Properties props=System.getProperties(); //系统属性
System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:"+props.getProperty ...