设计模式:
原则:
开闭原则,里氏替换原则,接口隔离,迪米特原则,单一职责,依赖倒置
创建:factory,singleton,prototype,builder,simple factory
结构:decorator,proxy,bridge,iterator
行为:observer,command,visitor,template,strategy
----------------------
command
control Accessor
ctrl1
ctrl2
control->ctrl1 ->Accessor
proxy :
分成多个子类,其实是利用了多态的实现,不过对象群体和装饰者模式有区别,比如A->B,B可以根据实际情况对其多种形式的实现
避免if else
bridge:
父类: //包含接口 子类通常以Impl命名
父类包含子类的Impl对象,接口调用子类的实现
decorator:
Interface + 子类实现,e.g filesteam socketstream
observer: 在对象改变时候调用listener接口
singleton: 懒汉模式 和饿汉模式
线程安全和不安全
factory: create objec
builder 也可以直接创建对象
visitor:
class stringvisitor {
void GetString(string str)
{
}
}
//用于获取这个字符串所用的string
void fun(IStrVisitor str);