设计模式: 原则: 开闭原则,里氏替换原则,接口隔离,迪米特原则,单一职责,依赖倒置 创建: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);