设计模式(一)

工厂方法模式

工厂方法模式是定义一个工厂接口,将对象的创建放到工厂的实现类中。

优点:

  1. 只需知道名称就能获得产品
  2. 新增产品只需添加具体工厂类和具体产品类,无需对原工厂进行修改,满足开闭式原则

缺点:

  1. 每增加一个产品就要增加一个具体产品类和对应具体工厂类

模式结构

由抽象工厂,具体工厂,抽象产品,具体产品组成

public class FactoryTest {
    public static void main(String[] args) {
        Product productA = getProduct("productA");
        Product productB = getProduct("productB");
        productA.show();
        productB.show();
    }
	//获取产品的方法 通过名称判断
    public static Product getProduct(String ProductName){
        switch (ProductName){
            case "productA":
                return new ProductAFactory().newProduct();
            case "productB":
                return new ProductBFactory().newProduct();
            default:
                    return null;
        }
    }
}
//产品接口 也可为抽象类
interface Product{
   void show();
}
//产品A
class ProductA implements Product{
    @Override
    public void show() {
        System.out.println("产品A");
    }
}
//产品B
class ProductB implements Product{
    @Override
    public void show() {
        System.out.println("产品B");
    }
}
//抽象工厂
interface Factory{
   Product newProduct();
}
//产品A工厂
class ProductAFactory implements Factory{
    public Product newProduct(){
        return new ProductA();
    }
}
//产品B工厂
class ProductBFactory implements Factory{
    public Product newProduct(){
        return new ProductB();
    }
}

抽象工厂模式

工厂模式是用来产生同一个产品不同类型的,
抽象工厂是用来产生不同产品不同类型的,抽象工厂意味着需要抽象类

优点:

  1. 只需修改工厂
  2. 新增种类很方便

缺点:

  1. 新增等级结构很麻烦,需要修改抽象层

模式结构

由抽象工厂,具体工厂,抽象类接口,抽象类,具体产品组成

public class AbstractFactory {
    public static void main(String[] args) {
        ShapeFactory f = new RedFactory();
        f.getCircle().draw();
        f.getRectange().draw();
    }
}

interface Shape{
    void draw();
}

abstract class Circle implements Shape{
    public abstract void  draw();
}
abstract class Retange implements Shape{
    public abstract void  draw();
}

class BlueCircle extends Circle{
    @Override
    public void draw() {
        System.out.println("蓝色圆");
    }
}

class RedCircle extends Circle{
    @Override
    public void draw() {
        System.out.println("红色圆");
    }
}

class RedRetange extends Retange{
    @Override
    public void draw() {
        System.out.println("红色方");
    }
}

class BlueRetange extends Retange{
    @Override
    public void draw() {
        System.out.println("蓝色方");
    }
}

interface ShapeFactory{
    Shape getCircle();
    Shape getRectange();
}

class RedFactory implements ShapeFactory{

    @Override
    public Shape getCircle() {
        return new  RedCircle();
    }

    @Override
    public Shape getRectange() {
        return new RedRetange();
    }
}

https://blog.csdn.net/zyhlwzy/article/details/80707488
https://blog.csdn.net/varyall/article/details/82355964

内容概要:本文档名为《赵家湾学校后大门百三十六栋.txt》,实则是份综合性科研仿真资源索引,集中展示了多个技术领域的Matlab/Simulink与Python代码实现项目。内容涵盖风光互补制氢合成氨系统容量-调度优化、微电网能量管理、无人机三维路径规划、图像分割、信号处理、电力系统建模、模型预测控制(MPC)、深度学习预测模型(如LSTM、Transformer)、联邦学习、强化学习应用等多个前沿方向。文档不仅列出具体研究题目和算法模型,还整合了智能优化算法(如PSO、GWO、DBO等)、路径规划、车间调度、通信优化、雷达跟踪、元胞自动机模拟等通用技术模块,并附有网盘链接提供完整代码与仿真模型下载,旨在为科研人员提供可复现的技术支持与开发参考。; 适合人群:具备定编程基础,从事电气工程、自动化、计算机科学、人工智能、控制工程、能源系统等相关领域的研究生、科研人员及工程技术开发者。; 使用场景及目标:①辅助高水平学术论文复现与科研项目开发;②为硕士/博士论文、课程设计、学科竞赛提供算法实现与仿真建模支持;③提升在新能源并网、智能控制、路径规划、负荷预测、故障诊断等领域的工程实践与创新能力。; 阅读建议:此文档为资源导航型材料,建议结合个人研究方向筛选对应主题,通过提供的百度网盘链接获取完整代码包,并配合相关文献进行仿真实验与参数调试,以实现高效复用、二次开发与技术创新。
内容概要:本文深入解析了AI Agent(智能体)的技术原理与系统架构,阐述其如何通过“思考-行动-观察”的闭环循环,使大语言模型(LLM)从被动应答的对话系统进化为能主动完成复杂任务的智能实体。文章详细介绍了Agent四大核心模块:作为决策中枢的LLM(大脑)、实现外部交互的工具调用(双手)、支持状态延续的记忆模块(记忆),以及驱动自主执行的规划与协调机制(协调)。同时对比了Agent与传统聊天机器人在任务规划、工具使用、记忆能力和执行闭环等方面的本质差异,并探讨了从单智能体到多智能体系统的架构演进趋势,强调专业分工对处理复杂任务的重要性。最后,文章分析了Agent模式与预设工作流模式的应用权衡,指出前者适用于灵活探索类任务,后者更适合确定性高的固定流程。; 适合人群:对人工智能、大模型应用开发感兴趣的技术人员、产品经理及研究人员,尤其适合具备定AI基础知识、希望深入了解Agent系统设计的专业人士; 使用场景及目标:①理解AI Agent的核心架构与关键技术组件;②掌握ReAct等主流执行范式;③区分Agent与传统聊天机器人的能力边界;④判断在实际业务中应采用Agent模式还是工作流模式; 阅读建议:本文理论性强且结构清晰,建议结合实际Agent案例(如AutoGPT、LangChain应用)进行对照学习,重点关注各模块间的协同机制与设计权衡,以深化对Agent系统级思维的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值