Java中一般认为有23种设计模式,这听起来很多,但是Java设计模式并不要求什么都能实现,我们只需掌握一些常用的设计模式。JavaDesign分为三个主要的类型:创建型的,结构型的,行为型的。小面详细说明了Java设计模式中的七个结构型模式。
JavaDesign模式中的七种结构模式是:适配模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享受模式。这些对象的适配器模式来自于各种模式。
I.适配器模式:
类别的适配器模式:当您想要将一个类转换为满足另一个新接口的类时,可以使用类的适配器模式,创建新类,继承原有类,实现新接口。
一个对象的适配器模式:如果您想将一个对象转换为符合另一个新接口的对象,则可以创建一个Wrapper类,该Wrapper类保存一个实例,而Wrapper类的方法调用实例的方法。
界面的适配器模式:如果不想实现接口中的所有方法,就可以创建抽象类Wrapper,实现所有方法,在编写其他类时,继承这个抽象类。
二.装修模式(装潢)
1.类的功能需要扩充。
2.为一个对象添加动态功能,并且可以动态撤销。(继承不能这样做,继承的功能是静态的,不能动态地增加和删除。)弊端:制作过多相似物品,不容易出错!
三、代理模式。
若现有方法在应用时需要对原方法进行改进,目前有两种方法:
1.修改原来的方法以适应。这就违背了“开门见山,开门见山”的原则。
2.利用一个代理类来调用原来的方法,并控制所得到的结果。这就是代理模式。
采用代理模式,可以更清晰地划分功能,便于后期维护!
四.外观模式(Facade)
若不使用Computer类,则CPU.Memory.Disk中的实例将互相保留,建立依赖关系,从而导致依赖性,而修改一个类,还可能导致其他类的修改,这是我们所不希望看到的。使用Computer类,它们之间的关系被放在Computer类中,因此可以作为一种分离,只是外表模式!
五.桥接模式(Bridge)
希望jdbc也可以实现多个数据库。
六.综合模式(Composite)
用情景:将几个物体组合起来进行操作,通常用来表示一个树的结构,比如二叉树,数字等等。
七.享受模式(Flyweight)
采用连接池管理,无需每次重新建立连接,就可以实现数据库连接的共享,节约了数据库重建的开销,提高了系统性能!
上面是Java设计模式的七个结构型模式,这些都是基本知识,大家一定要掌握哦!