软件体系结构——工厂模式

(1)UML设计图


简单工厂模式UML:

普通工厂模式UML:

抽象工厂模式UML:

(2)核心实现代码

简单工厂模式:




public class Simple extends javax.swing.JFrame {

private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String option = (String)chooseInsur.getSelectedItem();

AutoInsurance ai = null;

//再获取具体的保险理赔对象

switch (option) {

case "驾驶员身体受伤":

ai = new BodyInjur();

break;

case "汽车损坏":

ai = new CarInjur();

break;

case "人员伤亡":

ai = new PersonInjur();

break;

case "多种事故":

ai = new OtherAccident();

break;

}

insurInfoText.setText(ai.getInsurInfo());

}

普通工厂模式:




public class Normal extends javax.swing.JFrame {

private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String option = (String)chooseInsur.getSelectedItem();

PolicyProducer pp = null;

//再获取具体的保险理赔对象

switch (option) {

case "驾驶员身体受伤":

pp = new BodyPolicy();

break;

case "汽车损坏":

pp = new CarPolicy();

break;

case "人员伤亡":

pp = new PersonPolicy();

break;

case "多种事故":

pp = new OtherPolicy();

break;

}

AutoInsurance ai = pp.getInsurObj();

insurInfoText.setText(ai.getInsurInfo());

}

抽象工厂模式:





public class Abstract extends javax.swing.JFrame {

private void viewButtonActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String company = (String)chooseCompany.getSelectedItem();

String option = (String)chooseInsur.getSelectedItem();

AutoInsurance ai = null;

//先获取具体的保险公司对象

Company c = Company.getCompany(company);

//再获取具体的保险理赔对象

switch (option) {

case "驾驶员身体受伤":

ai = c.getBodyInjur();

break;

case "汽车损坏":

ai = c.getCarInjur();

break;

case "人员伤亡":

ai = c.getPersonInjur();

break;

case "多种事故":

ai = c.getOtherInjur();

break;

}

insurInfoText.setText(company+":\n"+ai.getInsurInfo());

}

时间: 2024-12-10 00:03:20

软件体系结构——工厂模式的相关文章

282.软件体系结构的风格与模式

建筑模式Christopher Alexander, The Timeless Way of Building, p247, 1979每个模式是一个由三部分组成的规则,表达了特定环境.问题和解(solution)之间的关系.作为现实世界的一个成分,每个模式表达了下列三者之间的一种关系:特定环境,在该环境中反复出现的力(forces)的系统,以及协调这些力的某种空间排列.作为语言的一个成分,每个模式是一条指令,展示了这种空间排列如何被一再重复使用,目的是协调同特定环境相关的力的系统.简单地说,模式

软件设计模式之工厂模式

什么是工厂模式? 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见.因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量. 简单点来说,工厂模式就是提供一个产生实例

简单工厂模式

目前正在看<大话设计模式>,写此系列的文章记录下学习的经过. 简单工厂模式 先看如下代码,使用面向对象的原理实现计算器功能 Operation运算类 1 public class Operation 2 { 3 private double numberA = 0; 4 private double numberB = 0; 5 6 public double NumberA 7 { 8 get { return numberA; } 9 set { numberA = value; } 10

设计模式(一)——简单工厂模式

嵌入式linux 设计模式(一)--简单工厂模式 一.简单工厂模式简介 1.简单工厂模式 简单工厂模式(Factory Method Pattern)是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 简单工厂模式的UML类图 工厂角色(Creator):是简单工厂模式的核心,由它负责创建所有的类的内部逻辑.工厂类必须能够被

软件体系结构原理、方法与实践总结

第1章:软件体系结构概论 什么是软件危机,软件危机的具体表现有哪些? 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象. 软件危机的表现: 软件成本日益增长,开发进度难以控制,软件质量差,软件维护困难 产生软件危机的原因,如何克服软件危机? 产生软件危机的原因有用户需求不明确,缺乏正确的理论指导,软件规模越来越大,软件复杂度越来越高. 人们面临的不光是技术问题,更重要的是管理问题.要提高软件开发效率,提高软件产品质量,必须采用工程

详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)

园子里关于23种设计模式的博文已经可以说是成千上万.车载斗量.屯街塞巷.不计其数.数不胜数.摩肩接踵.汗牛充栋.车水马龙.门庭若市.琳琅满目直至让人眼花缭乱了.在这样的大环境下之所以来写设计模式类的博文,并不是像一些"非主流"的爱情观那样"宁缺毋滥". 只是其一呢,因为相当于给自己做一个总结,加深一下自己这方面的认识,因为掌握了和把它写出来我感觉后者还可以对技能有一个提升,其二呢是因为最近公司有一个内部的training需要讲设计模式. v写在前面 在这里呢,需要向

设计模式一:简单工厂模式

概念理解: 1. 解耦:一般通过增加一些抽象层,来实现 功能提供者和功能使用者 两者的解耦隔离.而如果想要扩展功能即增加功能,只需要添加相应的相应的新的功能类,修改中间的抽象类即可,并不用修改使用者部分的代码.并且功能提供者的代码可以复用.而且使得程序更容易理解. 简单工厂模式介绍 一.什么是简单工厂模式? 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个子类(这些子类继承  自一个父类或接口)的实例. 二.简单工厂模式包含的角色: 1.工厂角色(工厂类): 它负责创建所有

创建型模式1.2简单工厂模式

一.概念 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 二.类图 三.具体介绍 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例. 该模式中包含的角色及其职责 工厂(OpertionFactory)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑.工厂

设计模式初探—简单工厂模式

为什么要学习设计模式? 可重用.可维护.可扩展.灵活性好 什么是简单工厂模式? 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 简单工厂模式的好处? (1)将具体业务和实现进行分离 (2)将多个具体业务之间进行解耦 解决的问题? 单独的类来创造