前言
历过了大量的实践🔨,这些前人的设计数据、经验。被一位工程师👳 整理、总结归纳了出来。并写了一本建筑“模式语言”的书籍📘。
同理,在软件领域,也需要前人的设计数据、经验。于是,也就出现了一本书“Design Patterns”📒。 设计模式(Design Patterns) 的来源就出自该书。
💯设计模式 好处 多多:
◆ 是前辈总结的设计经验
◆ 让代码更容易理解、更容易维护
◆ 通过设计模式可以让代码更加稳定更适合工业化的发展
🚴设计模式根据 其目的 可分为:
①创建型 (Creational)
②结构型(Structural)
③行为型(Behavioral)
一、第一部分:创建型
一、工厂模式
1、工厂模式简介
工厂模式用于隐藏创建对象的细节
◆ 一、工厂模式模式 细分
①、简单工厂
②、工厂方法
③、抽象工厂
◆ 二、、工厂模式核心: 工厂类 (Factory)
2、简单工厂
什么是简单工厂?👇👇👇
同理在软件中 也会有类似 “买房” 这种相同的问题。
最简洁快速的代码演示 => 场景:去宠物店买个鹦鹉。该怎么挑选公、母呢?不会区分
造个宠物接口 因为你买的最终是个 宠物嘛
public interface ChongWu {
// 一个宠物 可定有 一个性别的属性 (鳗鱼什么的除外)
public String show();
}
以下是所有 宠物:
public class YingWu1 implements ChongWu{
@Override
public String show() {
return "鹦鹉1,我是男生";
}
}
public class YingWu2 implements ChongWu{
@Override
public String show() {
return "鹦鹉2,我是女生";
}
}
public class NotFind implements ChongWu{
@Override
public String show() {
return "没有该性别的";
}
}
给商店 添加个 销售员
public class XiaoShou {
//这个方法 返回的是个接口
public ChongWu ShaiXuan(String str) {
ChongWu chongWu = null;
if (str.equals("公鹦鹉")){
return new YingWu1();
}else if (str.equals("母鹦鹉")){
return new YingWu2();
}else {
return new NotFind();
}
}
}
来顾客了
顾客 跟销售讲 要一条:公鹦鹉
public class GuKe {
public static void main(String[] args) {
XiaoShou xiaoShou = new XiaoShou();
ChongWu chongWu = xiaoShou.ShaiXuan("公鹦鹉");
String show = chongwu.show()
}
}
......控制台就会输出 :鹦鹉1,我是男生
◆ 简单工厂 => 根据用户不同的需要,返回不同的类。类的创建过程 使用者 不需要关心。
◆作为上面的 销售员 就是充当了工厂的角色
🏊如果 我的 同事给了我很多的类 其中还有一个 工厂类。那么在我使用这些 类 的时候,我不需要对每个 类都了解。我直接使用 工厂类!!! 需要什么功能类型的类,直接用工厂类去调。
2、开发中的使用
典型案例: APP中 语言的切换 中文版/英文版/…等。针对于不同的地区有不同的语言。让用户体验更好。
总结
设计模式有很多,目前先写工厂模式。后续慢慢增加。码字不易🐌,如果对您有所帮助不妨点个赞赞吧💖💖💖~
我爱你 ~ 我这一生有过两次重要的抉择,一次是高考,一次是送你回家的时候先迈哪只脚。🏃
🙏愿: 宇宙的尽头没有 设计模式。