开发者社区> 嗯哼9925> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

形象工程:创建型设计模式总结

简介:
+关注继续查看

前言:早已断断续续把23种设计模式学习了一遍,可是实际运用的不是很理想。如果刻意用设计模式,你会发现一个很小的项目,很小的功能其实处处都是可以按标准模式去编码的,这个也许就是所谓的过度设计的问题;而不用设计模式,代码又写得愚蠢臃肿,除了堆砌代码实现功能之外你看不到程序更别提思想上的一丝闪光点。也许正像网上很多人说的那样,到一定境界自动就会高效运用到项目中去了。当然现在也不能放弃学习它,下面就把创建型模式再整理一遍,下次用到的时候可以对照查一查看一下,希望可以“一劳永逸”。
一、概述
1、创建型模式,就是用来创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。
2、两个主旋律:第一,将系统使用哪些具体类的信息封装起来;第二,隐藏了这些类的实例是如何被创建和组织的。外界对于这些对象只知道它们共同的接口,而不清楚其具体的实现细节。
3、作用
创建者模式作用可以概括为如下两点((1)和(2)引用网上博文):
(1)封装创建逻辑,绝不仅仅是new一个对象那么简单。
(2)封装创建逻辑变化,客户代码尽量不修改,或尽量少修改。

 二、五种模式
1、单件模式(Singleton Pattern)

单件模式(Singleton Pattern)解决的是实体对象的个数问题,贴一段代码说明一下:

ContractedBlock.gifCode

2、工厂方法模式(Factory Pattern)

在工厂方法中,工厂类成为了抽象类,其实际的创建工作将由其具体子类来完成。工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去,强调的是“单个对象”的变化。

ContractedBlock.gifCode

3、抽象工厂模式(Abstract Factory)


(1).AbstractFactory:声明一个创建抽象产品对象的接口。
(2).CreateFactory:实现创建具体产品对象的操作。
(3).AbstractProduct:为一类产品对象声明接口。
(4).CreateProduct:定义一个将被相应具体工厂创建的产品对象,以实现AbstractProduct接口。
(5).仅使用AbstractFactory和AbstractProduct类声明的接口。
抽象工厂是所有工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂可以向客户提供一个接口,使得客户可以在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象,强调的是“系列对象”的变化。

ContractedBlock.gifCode

4、原型模式(Prototype Pattern)


和工厂模式一样,同样对客户隐藏了对象创建工作,但是,与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。

ContractedBlock.gifCode

5、建造者模式(Builder Pattern)


(1)抽象建造者(Builder):给出一个抽象接口,以规范产品对象的各个组成部分的建造。 
(2)具体建造者(Concrete Builder):担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序的调用下创建产品的实例。 
(3)导演者(Director):是与客户端打交道的角色,将创建产品的请求划分为对各个零件的建造请求,再将这些请求委派给具体建造者。 这一部分是组合到一起的算法(相对稳定)。
(4)产品(Product):建造中的对象(由多个部件组成)。 这个复杂对象的组成部分经常面临着剧烈的变化。
建造者模式把构造对象实例的逻辑移到了类的外部,在这个类的外部定义了这个类的构造逻辑。它把一个复杂对象的构造过程从对象的表示中分离出来,其直接效果是将一个复杂的对象简化为一个比较简单的目标对象。

ContractedBlock.gifCode

关于创建型模式还有其他几种,ms它们用的很“非主流”,不在赘述了。










本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/07/05/1491674.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
创建型设计模式——工厂方法模式
创建型设计模式——工厂方法模式
16 0
创建型设计模式——原型模式
创建型设计模式——原型模式
13 0
创建型设计模式——单例模式
创建型设计模式——单例模式
33 0
创建型模式(创建者模式)
创建型模式(创建者模式)
32 0
创建型设计模式--建造者模式
记录结构: --1.前言 --2.实际问题引入(需求) --3.使用建造者模式解决问题 --3.1建造者模式简述 --3.2建造者模式类图 --3.3建造者模式完整解决方案 --4.建造者模式总结 1.前言 没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。
656 0
+关注
4715
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载