您现在的位置是:首页 >技术杂谈 >设计模式总结,大白话、精简、通俗网站首页技术杂谈
设计模式总结,大白话、精简、通俗
一、创建型设计模式
单例模式
说明:全局唯一对象,避免每次构建销毁对象,提升效率,缺点缺乏抽象不易扩展。
实现:唯一对象定义为static且private的,提供统一static且public的访问接口,需考虑线程安全。
工厂方法模式
说明:具体工厂创建具体产品,一对一的关系,缺点用户需知道具体的工厂类。
实现:定义抽象工厂创建产品的抽象接口,抽象产品类的公共抽象接口,具体工厂创建具体的产品。
抽象工厂方法
说明:产品多元化,具体工厂创建几种产品,一对多的关系,缺点是新增多元化产品需要修改抽象工厂类以及具体工厂类。
实现:多个抽象产品类,多元产品在抽象工厂类分别定义创建接口,具体工厂创建多个产品。
简单工厂方法
说明:通过参数控制创建什么产品,实现简单,缺点产品一旦多起来,代码会变得复杂。
实现:工厂类里通过参数去控制创建具体的产品。
原型模式
说明:增加一个clone的方法,单独实现复制功能,来提升效率(当构造更耗时)
实现:通过clone方法来代替构造对象
建造者模式
说明:将一个复杂对象的构造与它的表示分离,然后组装成完整的对象。
实现:通过抽象接口,将复杂对象分离,后再组装起来,根据业务自己设计。
二、结构性设计模式
适配器模式
说明:将不兼容的类接口适配,从而能使用适配后的接口,在不改变原有框架下与无关联的类通信起来,实现代码复用。
实现:定义一个目标类设计好抽象接口,定义第三方适配类,多重继承目标类和冲突类,实现目标类的接口中的适配工作,调用冲突类的接口。
代理模式
说明:客户不能直接引用或不想让客户直接引用我的类,增加代理,客户直接去找代理。
实现:定义好抽象类,抽象类里的抽象接口,我的类及代理类继承抽象类,代理类去引用我的类,客户便能通过代理类间接访问我。
桥接模式
说明:顾名思义,其实就是将两个对象通过桥连接聚合起来,形成一个整体。
实现:通过一个桥接类,提供接口给用户可以任意聚合对象完成所需功能,灵活多变。
装饰模式
说明:正如房屋装饰一样,原有的功能不能满足现有的需求时,对原有的功能增加新的方法和功能已满足新的需求,相当于扩展。
实现:定义好抽象装饰类,继承原有框架的(抽象)基类,子类装饰类实现具体功能,在原有基础上添砖加瓦。
外观模式
说明:系统类及接口太多,客户使用麻烦,统一内部多个子系统,再次封装,提供公共对外接口。
实现:定义对外公共类,定义好公共对外接口,将各个子系统对象定义为private,在公共对外接口实现对各个子系统的调用,完整封装。用户直接使用对外接口,不用关系内部关系。
享元模式
说明:共享元素,共享对象,不用重复创建对象,减少系统开销提升效率,主要用于需要大量对象场景,可以创建维护一个对象池来满足需求。
实现:定义好所有对象的虚基类,实现共享对象池类,类维护一个对象池map表,提供对外接口,通过key获取对象,map有对象返回,没有创建该对象返回。
组合模式
说明:是一个比较复杂的模式,整体与部分的关系。通过树形结构将对象组成一个整体,每个叶子节点也是一个整体,一般用于比较复杂的系统,如公司的组织架构系统。
实现:定义好虚基类及需要的抽象接口(如add,del等接口),组合的每个部分继承该基类并定义自己虚基类的list,实现抽象接口。那么客户就可以通过虚基类组合自己复杂的系统架构。
三、行为型设计模式.......待补充