OO&设计模式
《Java与模式》- 行为型模式
摘要: Strategy Pattern,
Template Method Pattern,
Observer Pattern,
MVC Pattern,
Iterator Pattern,
Chain of Responsibility Pattern,
Command Pattern,
Memento Pattern,
State Pattern,
Interpreter Pattern,
Visitor Pattern,
Mediator Pattern
阅读全文
posted @
2007-06-22 09:47 Silent Void 阅读(34) |
评论 (0) 编辑
《Java与模式》- 结构型模式
摘要: Adapter Pattern,
Composite Pattern,
Decorator Pattern,
Flyweight Pattern,
Facade Pattern,
Brige Pattern
阅读全文
posted @
2007-06-22 09:40 Silent Void 阅读(31) |
评论 (0) 编辑
《Java与模式》- 创建型模式
摘要: Simple Factory Pattern,
Factory Method Pattern,
Abstract Factory Pattern,
Singleton pattern,
Mutition Pattern,
Builder Pattern,
Prototype Pattern
阅读全文
posted @
2007-06-22 09:26 Silent Void 阅读(33) |
评论 (0) 编辑
面向对象设计的原则
摘要: SRP,单一职责原则(The Single Responsibility Priciple);OCP,开放封闭原则(The Open-Close Priciple);LSP,Liskov替换原则(The Liskov Substitution Priciple);DIP,依赖倒置原则(The Dependency Inversion Priciple);ISP,接口隔离原则(The Interface Segregation Interface);
REP,重用发布等价原则;CCP,共同封闭原则;CRP,共同重用原则;
ADP,无环依赖原则;SDP,稳定依赖原则;SAP,稳定抽象原则
阅读全文
posted @
2007-05-08 20:40 Silent Void 阅读(223) |
评论 (0) 编辑
从“Liskov替换原则”和“Refused Bequest”看“正方形为什么不能继承长方形”
摘要: 目前也有一些技术可以支持我们将合理假设明确化,例如测试驱动开发(Test-Driven Development,TDD)和基于契约设计(Design by Contract,DBC)。但是有谁知道设计的使用者会作出什么样的合理假设呢?大多数这样的假设都很难预料。如果我们预测所有的假设的话,我们设计的系统可能也会充满不必要的复杂性。PPP一书中推荐的做法是:只预测那些最明显的违反LSP的情况,而推迟对所有其他假设的预测,直到出现相关的脆弱性的臭味(Bad Smell)时,才去处理它们。我觉得这句话还不够直白,Martin Fowler的《Refactoring》一书中“Refused Bequest”(拒收的遗赠)描述的更详尽:子类继承父类的methods和data,但子类仅仅只需要父类的部分Methods或data,而不是全部methods和data;当这种情况出现时,就意味这我们的继承体系出现了问题。例如上面的Rectangle和Square,Square本身长和宽相等,几何学中用边长来表示边,而Rectangle长和宽之分,直观地看,Square已经Refused了Rectangl
阅读全文
posted @
2007-05-06 12:58 Silent Void 阅读(367) |
评论 (6) 编辑
《OOD启思录》:61条面向对象设计的经验原则
摘要: “你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。” ----- Arthur J.Riel
阅读全文
posted @
2007-05-04 14:26 Silent Void 阅读(256) |
评论 (1) 编辑