5种最常用的设计模式:


1工厂方法 关注对象创建。 

2策略模式 关注对象行为。业务变化时,对数据模块的增加修改不受影响,开放封闭原则。 
3外观模式 BS/CS 
4适配品模式 报表自主开发或购买第三方 
5观察者模式 主界面菜单(菜单的Enable、Vieable状态)采用事件驱动方式

Spring(ICO控制反转/DI依赖注入)

单一职责:界面和算法分离,手机和DV(Digital Video摄像机)各做各的,手机虽然可以拍摄,但肯定没DV专业 
开放封闭原则:软件可扩展、可维护,新增是开放的,而修改是封闭的。Inc、Dec、Mul、Div类,比如再增加一个Squear类不会影响原有类,而修改其中任一个类也不会影响到其他类 
依赖倒置(或依赖倒转)原则,也可以称为里氏替换原则,子类可以替换父类,面向抽象、接口编程,而不是面象实现、细结编程。 
迪米特原则:假设A类和B类相互独门,如果他们之间需要调用,可以通过第三方实现。

简单工厂:在Factory类中定义Calculate类(Inc类的基类)对象,通过switch语句实现,把Inc、Dec、Mul、Div放入里面,同时创建(new ())该对象

抽像基类 + 工厂方法类 => 策略模式Strategy

抽象工厂Abstract(数据库可能会变更) => 简单工厂 + 反射

代理模式Proxy: 
复杂的情况:A call B =>C call B,比如A类需要调用B到类,A类里有B类的引用,此时增加一个C类(Proxy),在C类中引用A类的,同时创建A类的对象,同时增加个接口Intf类,A:Int,C:Int,这样在客户端调用时我们就是Intf:i=new C(b的实例);i.Method(); 
或者简单点:call A => call C,我们现在需要调用A类,本来可以在客户端直接A a = new A();s.Add();而现在变成Intf i= new C();i.Add();

外观模式Facade:是一非常常用的设计模式,经典的三层架构的BLL和DAL,WebUI和BLL之间使用的就是外观模式,依赖倒置和迪米特原则的完美体现。

中介者模式Mediator:可参考迪米特原则。 
享元模式Flyweight: 多人注册博客或围棋游戏,只有黑白二色,如不使用此模式下一盘棋创建对象可能是几百个,内存会耗尽。

状态模式和职责链模式有点类似

访问者模式Vistor:是GOF的23种模式中最难的一种。

版权所有,转载请注明文章出处 http://blog/csdn.net/cadenzasolo

你可能感兴趣的:(java)