我是靠谱客的博主 勤恳蜜粉,最近开发中收集的这篇文章主要介绍设计模式的总结二:创造型模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一:创造型模式分类

    1.子类别分类

      对象创造式模型:主要完成对象创建,病将对象中的部分内容放到其他对象中创建。(抽象工厂模式,生成器模式,原型模式,单例模式)

     类创造型模式:主要完成类实例化,并将类中的部分对象放到子类中创建。(工厂方法模式)

     2.创造型模型分类

        1)抽象工厂模式: 提供一个用于创建对象或相互依赖对象的接口,无需指定对象的具体类。

        2)生成器模式:      将复杂的对象构造与其表示相互分离,使得在相同的构建过程中可以创建不同的表示。

        3)工厂方法模式: 允许在子类中实现本类的实例化类。

        4)原型模式:        使用一个原型实例来制定创建对象的种类,然后通过拷贝这些原型实现新对象的创建。

        5)单例模式:确保某个类在系统中仅有一个实例,并提供一个访问他的全局访问点。

二:创造型模式的理解:

    1.工厂方法模式

       看名知意,类似工厂生产产品一样,创建实例对象。你提供一个类,通过工厂就能生产出这个类的对象来。

       模式主要包含这样几个类:

       产品类:       定义工厂方法中创建对象接口。

      具体产品类:实现产品类接口。

      工厂类:        声明工厂方法,返回一个产品类对象,可用于调用创建产品类对象的生成方法。

      具体工厂类:重写用于创建具体产品类对象的方法。

     2.应用场景:

       1)当需要创建一个类时,而在编辑时不能确定这个类的类型时(需要运行时确定)

       2)当一个类希望由其子类来指定所创建对象的具体类型时。

       3)当我们想要定位被创建类,病获取相关信息时。

     3.代码实现:

public interface Pet {
    //产品类(实例化工厂方法模式的基类)
    String getSound();
}
... ...
public class Cat implements Pet {
    //具体产品类(实例化工厂方法模式的派生类)
    @Override
    public String getSound() {
        return "Meaw";
    }
}
... ...
public class Dog implements Pet {
    //具体产品类(实例化工厂方法模式的派生类)
    @Override
    public String getSound() {
        return "Bow";
    }
}
... ...
public class PetFactory {
    //工厂方法模式实现,并展现对象创建逻辑
    public Pet getPet(String sound){
        Pet pet = null;
        //工厂实例化对象的基本逻辑
        if("Meaw".equals(sound)){
            pet = new Cat();
        }else if("Bow".equals(sound)){
            pet = new Dog();
        }
        return pet;
    }
}
... ...
public class AbstractFactoryModel {

    //使用工厂方法模式
    public static void main(String[] args){
        //创建工厂
        PetFactory factory = new PetFactory();

        //实例化一个对象
        Pet pet1 = factory.getPet("Bow");
        showSound(pet1.getSound());

        //实例化一个对象
        Pet pet2 = factory.getPet("Meaw");
        showSound(pet2.getSound());
    }

    //你并不知道会创建那种对象
    private static void showSound(String sound){
        System.out.println("" + sound);
    }

}


最后

以上就是勤恳蜜粉为你收集整理的设计模式的总结二:创造型模式的全部内容,希望文章能够帮你解决设计模式的总结二:创造型模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部