研磨设计模式day02

目录

设计模式是什么?

如何学习?

我们开始吧

简单工厂

场景

代码描述

解决方案

简单工厂创建对象的范围

简单工厂的调用顺序示意图

简单工厂优缺点

简单工厂思考

何时选用


设计模式是什么?

设计模式是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案

举个例子:

假设一个人感冒了,到药店买感冒药,这个感冒药就是设计模式的一个提现。

经过验证的:药品上市前,大量的验证实验

特定情况下:药品只针对人,不针对动物

重复出现的:正因为感冒会重复出现,研制药品才有意义

如何学习?

第一步:准确理解每个设计模式的功能、基本结构、标准实现,了解适合使用它的场以及使用效果

第二步:实际的开发中,尝试使用这些设计模式,并反复思考和总结是否使用得当,是否需要做一些变化

第三步:再回头去看设计模式的理论,有了实际的模式应用经验再看设计模式,会有不同的感悟。

第四步:多次重复学习设计模式的第二步和第三步

我们开始吧

=========================================================================

简单工厂

场景

Java:需要面向接口编程,如何使用接口来做到真正的面向接口?

接口和抽象类的选择:1.优先选用接口。2.在既要定义子类的行为,又要为子类提供公共的功能时应选择抽象类。

代码描述

首先定义一个接口

 再定义实现类

 我们常规使用时的方式

 常规使用就是new 一个实现类,但是接口的思想是封装隔离,此时这种方式使用时用户不仅知道了接口名(Api)还知道了具体实现(Impl)。

因此我们要做的就是在编程中,只提供接口,隐藏实现。

解决方案

简单工厂定义:

解决思路:虽然不让模块外部知道具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现的。那么直接在模块内部新建一个类,在这个类里面创建接口,然后把创建好的接口返回给客户端。这样外部通过类来获取相应的接口对象,就可以操作接口定义的方法了。

示例代码:

新建一个简单工厂的对象Factory

客户端使用:

理解Factory所处的位置:他是在模块内部的,跟Api和实现是在一起的。也就是说对用户可见的只有Api和Factory,所以就不仅仅是new Impl()这么简单的,是有了质的变化。

简单工厂创建对象的范围

简单工厂的调用顺序示意图

简单工厂优缺点

简单工厂思考

本质:选择实现,重点在于选择,实现是已经实现好了

难点:如何选择实现?传递参数?读取内存?读取数据库?

何时选用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值