设计模式
许喜朝
这个作者很懒,什么都没留下…
展开
-
策略模式
策略模式案例导入需求:设计一款植物大战僵尸的游戏现有两款僵尸,他们的属性如下属性外观移动方式攻击普通僵尸普通朝着一个方向移动咬旗手僵尸普通+手持旗子朝着一个方向移动咬设计出这两个僵尸类这种属性简单的类很好实现,只需要定义一个抽象类,把不同的属性抽离出来,相同的属性实现,子类来继承实现不同的属性//抽象类abstract class AbstractZombie{ //抽象方法 public abstract void displa原创 2020-12-29 08:54:46 · 154 阅读 · 0 评论 -
模版方法模式
模版方法模式模式定义定义一个操作的算法骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤实现需求:在数据库连接方面Oracle和Mysql除了驱动程序不一样,其他的都可以复用,并且步骤都是一致的import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;import com.sun.xml.internal.xsom.XSUnionSimpleType;/**原创 2020-12-29 08:54:05 · 85 阅读 · 0 评论 -
观察者模式
观察者模式模式定义定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当注意对象发生变化时,它的所有依赖者都会收到通知并更新应用场景当更改一个对象的状态可能需要更改其他对象,并且实际的对象集事先未知或动态更改时,请使用观察者模式优点1.符合开闭原则2.可以在运行时建立对象之间的关系实现//主题对象class Subject{ //容器 List<ObServer> container = new ArrayList<>();原创 2020-12-29 08:53:27 · 326 阅读 · 0 评论 -
装饰者模式
装饰者模式模式定义在不改变原有对象的基础上,将功能附加到对象上应用场景拓展一个类的功能或者给一个类添加附加职责优点不改变原有对象的情况下给一个对象拓展功能使用不同的组合实现不同的效果符合开闭原则实现/** * 需求 * 一个照相机拥有拍照功能,在不改变拍照功能的情况下添加美颜和滤镜功能 */public class DecoratorTest { public static void main(String[] args) { Component comp原创 2020-12-17 11:41:59 · 59 阅读 · 1 评论 -
适配器模式
适配器模式模式定义将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作应用场景当你希望使用某些现有类,但其他接口与你的其他代码不兼容时,请使用适配器模式当你希望重用几个现有的子类,这些子类缺少一些不能添加到超类中的公共功能时,请使用适配器模式优点符合单一指责原则符合开闭原则实现对象适配器模式package v1;/** * 对象适配器模式 * 需求: * 将家用220v电压转换成手机能使用的5v电压 */cl原创 2020-12-16 15:53:56 · 92 阅读 · 0 评论 -
原型模式
原型模式模式定义指原型实例指定创建对象的种类,并且通过拷贝这些原型创建一个新的对象换句话讲就是我们通常所说的复制粘贴,这就是原型模式的思想实现被克隆的对象实现Cloneable接口重写clone方法调用父类的clone方法public class PrototypeTest { public static void main(String[] args) throws CloneNotSupportedException { Product4 product4 = ne原创 2020-12-16 14:55:43 · 65 阅读 · 0 评论 -
享元模式
享元模式模式定义运用共享技术有效的支持大量粒度的对象优点如果系统有大量类似的对象,可以节省大量的内存及cpu资源实现import java.util.Map;import java.util.concurrent.ConcurrentHashMap;/** * 需求: * 在一张游戏地图中有无数的树,那么是不是每一颗树都是一个对象呢? * 显然不是!不同种类的树是不同的对象,同一种类的树是一个对象 * 只是一些属性不同而已 */public class FlyWeightTes原创 2020-12-16 14:55:16 · 80 阅读 · 0 评论 -
原型模式
原型模式模式定义指原型实例指定创建对象的种类,并且通过拷贝这些原型创建一个新的对象换句话讲就是我们通常所说的复制粘贴,这就是原型模式的思想实现被克隆的对象实现Cloneable接口重写clone方法调用父类的clone方法public class PrototypeTest { public static void main(String[] args) throws CloneNotSupportedException { Product4 product4 = ne原创 2020-12-15 19:59:21 · 57 阅读 · 0 评论 -
建造者模式
建造者模式应用场景需要生成的对象具有复杂的内部结构需要生成的对象内部属性本身相互依赖与不可变对象配合使用优点建造者独立,易拓展便于控制细节风险建造者模式public class BuilderTest { public static void main(String[] args) { ProductBuilder productBuilder = new SpecialConcreteProductBuilder(); Director d原创 2020-12-04 15:11:55 · 83 阅读 · 0 评论 -
工厂设计模式
工厂设计模式简单工厂模式/** * 简单工厂模式 */public class FactoryPattern { public static void main(String[] args) { //产品使用 Application application = new Application(); Product object = application.getObject("0"); object.method();原创 2020-11-25 19:23:40 · 93 阅读 · 0 评论 -
单例设计模式(java与node实现)
单例设计模式什么是单例设计模式单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例具体实现(1)将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。(3)定义一个静态方法返回这个唯一对象。java语言实现懒汉模式延迟加载,当只有使用的时候才开始真正的实例化/** *原创 2020-11-24 20:11:56 · 149 阅读 · 0 评论