其他分享
首页 > 其他分享> > SSM分别用了什么设计模式

SSM分别用了什么设计模式

作者:互联网

SSM分别用了什么设计模式

责任链模式
1.责任链模式就是当动态代理模式的拦截器有多个时的设计模式。
2.比如对象调用【请假】,请假单需要项目经理审批,部门经理审批,人事部门审批…

观察者模式
1.观察者模式对我来说算是最容易理解的模式了吧,比如实现小游戏的时候或多或少都模拟了观察者模式。虽让有点出入,但大致符合观察者模式的思想了嘛。
(1)new一个女朋友中,我假设了一个“管理员”对象(一个线程)充当观察者,“自己”对象充当被观察者,属性会随着键盘事件和鼠标事件而改变。然后管理员对象就通过自己对象的变化来对女朋友对象进行操作,比如亲亲抱抱举高高。。。。啊呜。

工厂模式和抽象工厂模式
1.工厂模式还是用小游戏来加强记忆吧,其实现在想着想着就想把之前的小游戏全部重构为运用了设计模式的那种,那样才能加强对设计模式的理解嘛,可是…哭了。
(1)抽象出一个军火商(抽象工厂),这个军火商有坦克工厂和子弹工厂,甚至还可以再扩展导弹,大炮等工厂。而对局的双方无需知道到底有几个工厂,只需知道他们有一个统一的工厂——军火商即可。
(2)然后子弹工厂又有不同型号的子弹比如,9mm子弹,5.6mm子弹,300mm马克子弹笑死了。。。但是这些子弹都实现了子弹这个接口,它可以攻击。

建造者模式
1.建造者模式主要包含四个角色:
(1)Product(产品角色): 一个具体的产品对象。
(2)Builder(抽象建造者):创建一个Product对象的各个部件指定的抽象接口。
(3)ConcreteBuilder(具体建造者): 实现抽象接口,构建和装配各个部件。
(4)Director(指挥者): 构建一个使用Builder接口的对象。它主要是用于创建一个复杂的对象。它主要有两个作用,一是:隔离了客户与对象的生产过程,二是:负责控制产品对象的生产过程。
答案2-------------------------
https://blog.csdn.net/fallwind_of_july/article/details/93896995

一、单例模式:
所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生,并且提供一个全局的访问点。具体实现步骤如下:
(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。
(2) 在其内部产生该类的实例化对象,并将其封装成private static类型。
(3) 定义一个静态方法返回该类的实例,通过静态方法返回instance对象
饿汉式,线程安全 但效率比较低,加载类即刻创造对象
(懒汉式)饱汉式,非线程安全,用到的时候才创建对象

懒汉式1:线程不安全

public class Singleton {  
    private static Singleton instance;  
    private Singleton (){}  
  
    public static Singleton getInstance() {  
    if (instance == null) {  
        instance = new Singleton();  
    }  
    return instance;  
    }  
}

懒汉式2:线程安全
在懒汉式1的getInstance方法前加synchronized

饿汉式:线程安全(推荐)

class Singleton {  
    private Singleton() {} // 将构造方法封装为私有化 
 
	private static Singleton instance = new Singleton();// 在内部产生本类的实例化对象 

    public static Singleton getInstance() { // 通过静态方法返回instance对象 
        return instance;  
    }  
	
    public void showMessage() {
		System.out.println("Hello World!");
	}
}

class SingletonPatternDemo {
   public static void main(String[] args) {
 
      //不合法的构造函数
      //编译时错误:构造函数 SingleObject() 是不可见的
      //SingleObject object = new SingleObject();
 
      //获取唯一可用的对象
      SingleObject object = SingleObject.getInstance();
 
      //显示消息
      object.showMessage();
   }
}


二、工厂模式:
意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
主要解决:主要解决接口选择的问题。
何时使用:我们明确地计划不同条件下创建不同实例时。
如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。
关键代码:创建过程在其子类执行。
使用场景:
1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。
2、数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。

三、适配器模式:
将一个类的接口转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以相互合作。
例如:手机充电器一般都是5V左右吧,咱天朝的家用交流电压220V,所以手机充电需要一个适配器

四、装饰者模式:
若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上。当我们设计好了一个类,我们需要给这个类添加一些辅助的功能,并且不希望改变这个类的代码,这时候就是装饰者模式大展雄威的时候了。这里还体现了一个原则:类应该对扩展开放,对修改关闭。

五、观察者模式:
观察者模式属于行为型模式,其意图是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

六、迭代器模式:
迭代器模式属于行为型模式,其意图是提供一种方法顺序访问一个聚合对象中得各个元素,而又不需要暴露该对象的内部表示。

七、代理设计模式:
指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。

spring中用到的设计模式:
mybatis中用到的设计模式:

标签:Singleton,分别,对象,Spring,接口,SSM,模式,设计模式
来源: https://blog.csdn.net/qq_28023365/article/details/100060941