对象创建模式(跳过new直接的使用)

对象创建模式;就是通过对象创建模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖于具体的类)
其中包括
工厂模式;
抽象工厂;
原型模式;
构建器;
4个其实都是基于工厂模式有一点点 小变化。
工厂模式就是定义一个用于创建对象的接口,让子类决定去实例化哪一个类,工厂方法就是使得一个类的实例化延迟到子类去。

对象创建模式其实就是解决赋值时等号右边的new而形成的依赖实现类子类的问题。
工厂模式;
如文件切割类
ISplitter * splitter = new filestream();
等号左边可以利用多态解决了早绑定问题,但是等号右边缺还是依赖于具体的子类,那么调用这条语句的类就不是一个很具有面向对象设计模式的类了,因为不具备移植稳定性,需要根据具体的实类去改变。然后工程模式就是解决这种早绑定而创建的模式。
其主要的方法就是去创建一个抽象类(工厂类),在调用这边通过抽象类多态指针调用。而在实现那边,工厂类中存在一个创建的对象虚方法,然后每个实例类都去继承它并返回自己new的本身的类,从而就到达了,一个类的实例延迟的效果。
在这里插入图片描述

面向接口编程,最直观的最基础的就是 你一个变量对象要声明为一个抽象的基类

抽象工厂,其实就是根据工厂模式做了一点点小的调整,就是把多个工厂合并成一个。但是前提也是合并的这些工厂方法对应的是有一套相关联系的。
例如数据库操作
数据库分为很多类型如SQLite,MySQL,oralSql等等,并且每个类都有对应的connect,read,command等方法,也正是因为这些方法是有关联性的,因此他们可以使用抽象工厂(建立一个工厂,有三个方法创建这三个对象,因为他们有相互联系,操作的必须是同一个数据库),但是如果他们三者没有联系那么也就只能采用工厂方法,那么也就要多键很多类。

原型模式,使用得不多,但是要认识。主要使用的是一种克隆的方法吧。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zw1996/article/details/97618924