设计模式是从许多优秀的软件系统中总结出来的代码设计经验,也就是一些扩展性、灵活性好,易于维护和复用的设计方案,这可是前辈们的头破血流换来的。我们要站在巨人的肩膀上,吸取宝贵的经验,设计出优秀的软件系统来面对这个需求日新月异的信息时代。
设计模式以实现”六大原则“为方针,主要有23个,分为三大类。...
分类:
其他好文 时间:
2014-06-05 03:51:39
阅读次数:
214
没有java数据结构的基础,如何优化Android应用的性能?在实际生活中,队列有着广泛的应用,例如排队购物,文章打印,都遵循着队列先进先出的原则。队列queue在我们Handel looper thread那章中我们讲解过,今天我们重点解析下Queue的性质。...
分类:
编程语言 时间:
2014-06-05 01:52:21
阅读次数:
251
策略模式(Strategy Pattern)体现了两个非常基本的面向对象设计的原则
1、封装变化的概念;
2、编程中使用接口,而不是对接口的实现。
策略模式定义了一个共同的抽象算法接口,其子类实现这个接口定义的方法,并且都有各自不同的实现,这些算法实现可以在客户端调用它们的时候互不影响的变化。 子算法之间是弱连接的关系,提高了软件的可扩...
分类:
编程语言 时间:
2014-06-04 23:26:15
阅读次数:
429
这是一道简单题,也隔了一段时间没做简单题目了。
这次感觉又不一样了,可以很快就能写出很优雅的代码了,故此很想贴贴自己的代码。
优雅代码的关键就是要利用数学的思想去解:
本题的实质是可以转化为求最大公倍数的的问题,然后利用Inclusion-exclusion(包含和不包含)的原则,计算有多少个数能被a除尽这个公倍数,有多少个数能被b除尽这个公倍数,然后相减就得到最终答案了。...
分类:
其他好文 时间:
2014-06-03 04:51:05
阅读次数:
196
ISP,Interface Segregation Principle,中文翻译为“接口隔离原则”。和DIP原则一样,ISP原则也是大名鼎鼎的Martin大师提出来的,他在1996年的C++ Reporter发表“ The Interface Segregation Principle”的文章详细阐述了ISP原则,并且在他的经典著作《 Agile Software Development, Pri...
分类:
其他好文 时间:
2014-06-03 00:57:45
阅读次数:
250
1 调度
Windows不是实时操作系统,它是抢占式多线程操作系统。在假设所有优先级相同的情况下,CPU对线程的调度原则是每隔20m就会切换到下一个线程,根据Context中的IP和SP来接着执行上次的东西。Windows永远不会让1个线程去独占一段时间。
2 可调度性
系统只调用可以调度的线程,其实系统的大部分线程都是处于不可调度的状态,要么处于暂停的状...
分类:
编程语言 时间:
2014-06-03 00:16:07
阅读次数:
402
1、背景
在图书馆借书,刚开始的时候,直接跑到相应的楼层去,到里面去转,去找要借的书,在里面溜达半天才能找到;后来知道图书馆有一个电脑查询处,然后直接在电脑上输入想要借的书,电脑就会显示你想要借的书的信息,还有所在的相关楼层存放的相关位置。
2、定义
迪米特法则(Law of Demeter)又叫作最少知识原则(LKP,Least Kno...
分类:
其他好文 时间:
2014-06-02 23:22:49
阅读次数:
292
有很多设计模式,基本上都是围绕着下面几种原则来设计的。开放封闭原则 依赖倒转原则 里氏代换原则 迪米特原则...
分类:
其他好文 时间:
2014-06-02 22:36:57
阅读次数:
229
1、定义
简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承。
2、释义
为什么“要尽量使用合成和聚合,尽量不要使用继承”呢?
这是因为:
第一,继承复用破坏包装,它把父类的实现细节直接暴露给了子类,这违背了信息隐藏的原则;
第二:如果父类发生了改变,那么子类也要发生相应的改变,这就直...
分类:
其他好文 时间:
2014-06-01 08:50:26
阅读次数:
313