java 设计模式(简单工厂模式、工厂方法模式、单利模式、模板方法模式)

什么是设计模式?

1、设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
2、设计模式不是一种方法和技术,而是一种思想
3、设计模式和具体的语言无关,学习设计模式就是要建立面向对象的思想,尽可能的面向接口编程,低耦合,高内聚,使设计的程序可复用
4、学习设计模式能够促进对面向对象思想的理解,反之亦然。它们相辅相成


设计模式的几个要素是什么?

1、名字: 必须有一个简单,有意义的名字
2、问题 :描述在何时使用模式
3、解决方案: 描述设计的组成部分以及如何解决问题
4、效果: 描述模式的效果以及优缺点


设计模式的分类

1、创建型模式 :对象的创建。
简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式。(6个)
2、结构型模式 :对象的组成(结构)
外观模式、适配器模式、代理模式、装饰模式、桥接模式、组合模式、享元模式。(7个)
3、行为型模式 :对象的行为
模版方法模式、观察者模式、状态模式、职责链模式、命令模式、访问者模式、策略模式、备忘录模式、迭代器模式、解释器模式。(10个)


简单工厂模式

简单工厂模式:又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些对实现了同一接口类的实例
优点:客户端不需要在负责对象的创建,从而明确了各个类的职责
缺点:这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护

举个例子:
Animal抽象类,作为父类

public abstract class Animal {
    public abstract void eat();
}

Cat类继承Animal

public class Cat extends Animal {
   
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

Dog类继承Animal

public class Dog extends Animal {
   
    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }
}

AnimalFactory工厂类:专门用来创建对象的实例

public class AnimalFacrtory {
    //私有的构造方法,说明不能通过new来创建这个类的实例,因此要调用这个类中的方法,这些方法必须是静态的才能被调用。
    private AnimalFacrtory(){       
    }

    public static Animal createAnimal(String type){
        if("dog".equals(type)){
            return new Dog();
        }else if("cat".equals(type)){
            return new Cat();
        }else{
            return null;
        }
    }
}

测试类:

public class AnimalDemo {
    public static void main(String[] args) {
        //创建一个Dog类的实例对象
        Animal a = (Dog) AnimalFacrtory.createAnimal("dog");
        a.eat();

        
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值