设计模式
Posted zawjdbb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式相关的知识,希望对你有一定的参考价值。
设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
使用设计模式是为了可重用代码,让代码更容易的被他人理解,保证代码可靠性
设计模式不是一种方法或技术,而是一种思想
设计模式分类:
创建型模式--对象的创建,6个:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式
结构型模式--对象的组成(结构),7个:外观模式,适配器模式,代理模式,装饰模式,桥接模式,组合模式,享元模式
行为型模式--对象的行为,10个:模板方法模式,观察者模式,状态模式,职责链模式,命令模式,访问者模式,策略模式,备忘录模式,迭代器模式,解释器模式
public abstract class animal{} public class dog extends animal{} public class cat extends animal{}
简单工厂模式:
又叫静态工厂方法模式,定义一个决堤的工厂类负责创建一些类的实例
优点:客户端不需要再负责对象的创建,从而明确了各个类的职责
缺点:这个静态工厂类负责所有对象的创建,如果有新的对象添加,或者某些对象的创建方式不同,就需要不断修改工厂类,不利于后期维护
public class AnimalFactory{
private AnimalFactory(){}//构造方法私有
public static Animal createAnimal(String type){if("dog".equals(type){return new dog()} else if(....)}
}
Animal a = AnimalFactory.createAnimal("dog");
工厂方法模式:
解决简单工厂模式弊端
工厂方法模式中,抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现
优点:在简单工厂模式优点的基础上,如果有新对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有代码,后期容易维护,增强系统的扩展性
缺点:需要额外编码,增加工作量
public interface Factory{}
public class dogFactory implements Factory{}
public class catFactory implements Factory{}
Factory f = new dogFactory();
Animal a = f.createAnimal();
单例模式:
确保类在内存中只有一个对象,该实例必须自动创建且对外提供
优点:系统中只存在一个对象,可以节约系统资源,对于需要频繁创建和销毁的对象,单例模式可以提供系统性能
缺点:没有抽象层,扩展很困难,职责过重,违背单一职责
构造方法私有,成员位置提供自己创建一个本类对象,通过一个公共方法提供访问
以上是关于设计模式的主要内容,如果未能解决你的问题,请参考以下文章