- 浏览: 546255 次
- 性别:
- 来自: 上海
最新评论
-
chuanwang66:
默默水塘 写道typedef void(*Fun)(void) ...
C++虚函数表(转) -
默默水塘:
typedef void(*Fun)(void);
C++虚函数表(转) -
lishaoqingmn:
写的很好,例子简单明了,将观察者模式都表达了出来。
这里是ja ...
观察者模式——Observer
文章列表
一、
并查集:
(union-find sets)
一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。
并查集的三种操作
:
1
、Make_Set(x) 把每一个元素初始化为一个集合
初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身(也可以根据情况而变)。
2
、Find_Set(x) 查找一个元素所在的集合
查找一个元素所在的集合,其精髓是找到这个元素所在 ...
深入理解二分查找(一、二分查找及其变体)
- 博客分类:
- 数据结构和算法
《编程之美》 2.19 解法二需要在一个数组 arr[] 中找到最后一个≤ value 的值,可以顺序查找,也可以使用二分查找。但标准的二分查找用来查找 =value 的值,因此这里需要改造一下:
1. 标准二分查找:
注意:退出原因有两个——“ arr[mid]==value ,即找到” 或者 “ l==r 且仍未找到”
(这个版本代码根据《编程珠玑》)
private static void find(int[] arr, int value){
int l=0,r=arr.length-1;
int mid=(l+r ...
享元模式——Flyweight
- 博客分类:
- 设计模式(抽象&封装)
享元模式——Flyweight
1.
概念
享元模式
(Flyweight
,轻量级选手
)
就是利用可共享对象的池。因而,通常用到
Factory
,称为
Flyweight
Factory
享元工厂
。
(Sam)
将对象定义为不可变
(immutable)
...
Combining Probabilities
Suppose that Mr. Smith, who is correct 75% of the time, claims that a
certain event X will NOT occur. It would seem on this basis that the
probability of X ocurring is 0.25. On the other hand, Mr. Jones, who
is correct 60% of the time, claims that X WILL occur. Give ...
如果一个函数如果可以用等号后面的东西表示出来的话,那么这个函数就是说,可以用泰勒展开式的方法展开来的。
在人类历史上,人类对泰勒展开式的兴趣之所以那么高,完完全全是因为(x-a)的n次方,(x-a)的n ...
Bayes过滤器 和 Bayes分类器
- 博客分类:
- 数学
Bayes过滤器
贝叶斯推断及其互联网应用(一)
http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.html
贝叶斯推断及其互联网应用(二)
http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_two.html
难点:
1. P(E1)=P(S|W1)P(S|W2)P(S)怎么来的:
1.1 参见文章——数学(概率)/联合概率
P(E1)事实上是个后验概率,而P(E1)=P(S|W1)P(S|W2)P(S)基于两个假设——
S|W ...
Use Case Diagram概念解析
- 博客分类:
- UML细节
这是一个自动售货机的部分UseCase图:
注意:
一、解释途中Restock 和 Collect的含义:
1. Restocking a soda machine
2. Collecting the money from a soda machine.
二、Inclusion和Extension
1. Inclusion
the “Restock” use case would be <<include>> (expose the inside).
2. Extension
扩展:The new use case is said to exten ...
1.
两种关联关系的特例:
1)
聚合
Aggregation
——
Aggregation: b can live without its context (object of A).
============================================
==C++==
class B{
B* b;
}
==java==
class B{
B b;
public A(B b){
this.b = b;
}
}
聚合是整体与部分、拥有的关 ...
一、使用抽象工厂和工厂方法
Factory Method Pattern工厂方法 和 Abstract Factory Pattern抽象工厂 是两种不同的设计模式。《Java设计模式》书上给出了如下定义,但是Sam觉得有点问题,在网上找了找资料,在后文将给出我自己的理解。
Factory Method Pattern
P167
The intent of Factory Method is to let a class developer define the interface(统一接口) for creating an object while ...
单例模式——Singleton
- 博客分类:
- 设计模式(抽象&封装)
public class Singleton {
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}else{
}
return instance;
}
public void fun(){
...
观察者模式——Observer
- 博客分类:
- 设计模式(抽象&封装)
观察者模式——
Observer
本系列文章中,
State
模式的第一种实现方法
(switch
实现
state
转化
)
将旋转门类
Door
作为
Observable
的子类,就采用了
Observer
模式。配套还应该实现
Observer
接口来支持对
Door
实例 ...
适配器模式
——
Adaptor(Adapter)
注意
:
Adapto
r
,也作
Adapte
r
一、定义及架构
Adaptor(
别名
Wrapper)
模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器器让原本接口不兼容的类 ...
1.
概述
The intent of the STATE
pattern is to distribute state-specific logic across classes that represent an
object’s state.
STATE
设计模式的目的
是:将特定状态相关的逻辑分散到一些类的状态类中。
2.
实例
旋转门:
Consider the model of the
state of a carousel door(revolving door). ...
装饰者模式——Decorator
- 博客分类:
- 设计模式(抽象&封装)
装饰者模式——
Decorator
有时间还是看一下《
Java
设计模式》,临近期末,为了节省时间我直接找了一些资料总结了一下。
1. Decorator
好处
/
目的
:
A.
如果使用继承
实现功能扩展:
我们通常使用继承来实现功能扩展,随着这些需要扩展的功能的增多,扩展功能的组合会导致更多的子类的膨胀。
同时,使用继承实现功能的扩展,我们必须可预见这些拓展功能,这些功能编译时就确定了,是静态的。
...
1. Composite 定义
:
将对象以树形结构组织起来,以达成“部分
-
整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
想到
Composite
就应该想到树形结构图。组合体内这些对象都有共同接口。当组合体一个对象的方法被调用时,
Composite
将遍历整个“子树”,寻找同样包含这个方法的对象执行之。
类似
Chain of
Responsibility
模式(责任链)。
2. Composite 好处
(目的
):
...