java 框架广泛使用设计模式,包括:工厂模式:创建对象而不指定其具体类;单例模式:确保一个类只有一个实例;建造者模式:逐步构建复杂对象;观察者模式:对象订阅事件并收到通知。 内容来自zvvq,别采集哟
Java 框架设计模式详解 zvvq.cn
简介
设计模式是一组可重用的解决方案,用于解决常见编程问题。在 Java 框架中,这些模式广泛用于简化应用程序的架构并提高其可靠性和灵活性。本文将探讨一些重要的 Java 框架设计模式,并提供实战案例作为参考。 内容来自zvvq
工厂模式 内容来自zvvq
工厂模式提供了一种创建对象而不指定其具体类的机制。这允许应用程序在不了解底层类的情况下创建对象,从而提高了灵活性。
实战案例:
publicclassShapeFactory{
publicShapegetShape(StringshapeType){
if(shapeType.equals("rectangle")){
zvvq.cn
returnnewRectangle();
copyright zvvq
}elseif(shapeType.equals("circle")){
returnnewCircle();
}
内容来自samhan666
returnnull;
内容来自zvvq
} 内容来自zvvq
} 内容来自zvvq
publicclassClient{
publicstaticvoidmain(String[]args){ zvvq
ShapeFactoryfactory=newShapeFactory(); copyright zvvq
Shapeshape=factory.getShape("rectangle");
shape.draw();
zvvq
} zvvq好,好zvvq
}
单例模式 内容来自zvvq
单例模式确保一个类只有一个实例。这个实例可以在整个应用程序中轻松访问,非常适合存储全局状态数据或处理并发性。
copyright zvvq
实战案例:
内容来自samhan
publicclassSingleton{
privatestaticSingletoninstance; zvvq.cn
privateSingleton(){} 内容来自samhan
publicstaticSingletongetInstance(){
if(instance==null){
zvvq好,好zvvq
instance=newSingleton(); zvvq
}
returninstance; copyright zvvq
}
}
publicclassClient{ 内容来自zvvq
publicstaticvoidmain(String[]args){
内容来自samhan
Singletonsingleton1=Singleton.getInstance();
内容来自samhan666
Singletonsingleton2=Singleton.getInstance(); zvvq
System.out.println(singleton1==singleton2);//true
zvvq好,好zvvq
}
zvvq.cn
}
zvvq.cn
建造者模式 内容来自samhan666
建造者模式允许通过逐步构建复杂对象来分离对象的创建和表示。它提供了灵活性,可以创建各种具有不同配置的对象。 zvvq好,好zvvq
实战案例: 本文来自zvvq
publicclassPizzaBuilder{
内容来自samhan666
privateStringcrust; 内容来自samhan666
privateListtoppings;
publicPizzaBuilderwithCrust(Stringcrust){
内容来自samhan666
this.crust=crust; 内容来自zvvq
returnthis;
内容来自zvvq,别采集哟
} 内容来自zvvq,别采集哟
publicPizzaBuilderwithTopping(Stringtopping){
toppings.add(topping); zvvq.cn
returnthis; 内容来自zvvq
}
publicPizzabuild(){ 本文来自zvvq
returnnewPizza(crust,toppings);
} 内容来自samhan
} 内容来自zvvq
publicclassClient{ 内容来自zvvq
publicstaticvoidmain(String[]args){
PizzaBuilderbuilder=newPizzaBuilder(); copyright zvvq
Pizzapizza=builder.withCrust("thin").withTopping("cheese").withTopping("pepperoni").build();
本文来自zvvq
System.out.println(pizza);
zvvq
}
内容来自samhan666
}
zvvq好,好zvvq
观察者模式 zvvq.cn
观察者模式允许对象订阅事件,当事件发生时收到通知。这种模式广泛用于实现松散耦合、响应事件的应用程序。
zvvq好,好zvvq
实战案例: zvvq.cn
publicinterfaceSubject{ zvvq好,好zvvq
voidattach(Observerobserver); 本文来自zvvq
voiddetach(Observerobserver); 内容来自samhan666
voidnotifyAll(); 本文来自zvvq
}
zvvq.cn
publicinterfaceObserver{ 内容来自samhan
voidupdate();
} 内容来自zvvq
publicclassConcreteSubjectimplementsSubject{ 内容来自zvvq
privateListobservers;
zvvq.cn
privateintstate;
本文来自zvvq
publicvoidsetSubjectState(intstate){ 内容来自samhan
this.state=state; copyright zvvq
notifyAll();
}
@Override
zvvq
publicvoidnotifyAll(){
内容来自zvvq,别采集哟
for(Observerobserver:observers){
内容来自zvvq,别采集哟
observer.update(); 内容来自samhan666
}
zvvq
} 内容来自zvvq,别采集哟
}
publicclassConcreteObserverAimplementsObserver{ 内容来自zvvq,别采集哟
@Override
zvvq好,好zvvq
publicvoidupdate(){ copyright zvvq
System.out.println("ObserverAnotified.");
zvvq.cn
} 内容来自zvvq,别采集哟
}
publicclassClient{
publicstaticvoidmain(String[]args){ 内容来自samhan666
ConcreteSubjectsubject=newConcreteSubject();
内容来自zvvq
ConcreteObserverAobserverA=newConcreteObserverA();
copyright zvvq
subject.attach(observerA);
内容来自zvvq,别采集哟
subject.setSubjectState(10);
} zvvq
} copyright zvvq
以上就是java框架设计模式详解的详细内容,更多请关注其它相关文章!
copyright zvvq