概述
一:创造型模式分类
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);
}
}
最后
以上就是勤恳蜜粉为你收集整理的设计模式的总结二:创造型模式的全部内容,希望文章能够帮你解决设计模式的总结二:创造型模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复