工厂方法中如何知道实体产品到底是什么产品呢?
black_cat 发表于 2002-12-10 11:11
虽然模式上说是为了避免客户端知道具体的实体产品。但如果修改了产品的接口,如何能让客户端知道新的接口呢?
比如一个Garden工厂用Create方法创建了两个产品Flower,Glass,都属于抽象产品Plant,但Flower增加了接口Color,而Glass没有该接口,但有另一个接口EverGreenAble。那客户端还是必须根据具体产品来确定该如何工作,但现在客户端只知道是Plant类型,并不知道究竟是哪个产品啊,这种情况怎么办呢?
********************************************************************************在抽象工厂创建新新产品,往往带有较明显的功能取向性的...
epower2002 发表于 2002-12-10 11:22
比如说:
1) 建立一个抽象工厂(Abstract Factory)类HouseFactory,在这个类中声明:
CreateWall ()
CreateDoor ()
CreateFloor ()
CreateCeiling ()
CreatePillar ()
2) 建立相应的抽象产品(Abstract Product)类集:
Wall, Door, Floor, Ceiling, Pillar
3) 为不同风格建立相应的具体工厂(Concrete Factory)类(不要忘了实现关系),例如:
ChinaHouseFactory : HouseFactory
GreeceHouseFactory : HouseFactory
…
4) 为不同的风格建立相应的具体产品(Concrete Product)类(实现相应的抽象产品),例如:
ChinaWall : Wall
ChinaDoor : Door
…
GreeceWall : Wall
GreeceDoor : Door
…
具体请见"简话设计模式"
********************************************************************************工厂方法不知道他所得到的产品的具体类型
walaqi 发表于 2002-12-10 11:41 VB.NET
他只是在一个产品接口上进行操作。
例如:factory的createProduct1()返回一个product1类的实例。
penFactory的createproduct1()返回一个penProduct1类的实例,但是他们都必须满足一个条件,。全部要实现product接口
我把Black_Cat与Walaqi等关于"设计模式"之"工厂方法&q
时间: 2024-12-22 06:49:52
我把Black_Cat与Walaqi等关于"设计模式"之"工厂方法&q的相关文章
vs中的aspx页面-Vs引用样式id=&;amp;quot;不提示&;amp;quot;
问题描述 Vs引用样式id="不提示" 在vs中aspx页面引用样式后,比如 请问这怎么解决,找了好久,可是没有合适的答案,请大侠帮忙解决! 解决方案 id="不提示" 这中写法是老师教的,还是你自己想的 样式调用不要用中文,可以这样写id="nav" 然后样式中 .nav{ width:500px; heigth:500px; border:1px solid red; } 样式里面自己发挥 相关文章 ajax-关于Ajax 入门一直出错 vi
关于&;amp;quot;&;amp;lt;&;amp;quot;和&;amp;quot;&;amp;gt;&;amp;quot;等符号的显示问题
问题描述 大家都知道<=<>=>'="等等...如果我的数据库某记录是<fontsize="5">内容</font>浏览器上显示也一样,没有对<font>进行解析,查看源代码发现<都变成了<,但我想浏览器能解析<font>,如何做?我用的是struts2+mysql其实我想开发类似FCKEditer的文本编辑器组件,对能对部分文本进行改变大小操作并保存到数据库,显示的时候按所保存的样式进行显示
virtual-语法错误 : 缺少&;amp;quot;;&;amp;quot;(在标识符&;amp;quot;m_Graydlg&;amp;quot;的前面)
问题描述 语法错误 : 缺少";"(在标识符"m_Graydlg"的前面) public:CGaryDetection m_Graydlg; 但是我已经包含了头文件啊 #pragma once #include""afxdockablepane.h""#include""GrayDetection.h"" // CGrayDetectionPane class CGrayDetectio
Linux环境下&;quot;Font font = new Font(&;quot;黑体&;quot;, Font.BOLD, 18)&;quot;[BufferedImage~Graphics~drawString]中文乱码
Linux环境下"Font font = new Font("黑体", Font.BOLD, 18)"[BufferedImage~Graphics~drawString]中文乱码,windows下不会乱码,但在linux下nginx和tomcat部署后出现乱码.方框.问号等等,不能认清楚!!! 先说说系统: Microsoft Windows [版本 10.0.10586] (c) 2015 Microsoft Corporation.保留所有权利. ------
J2EE部署项目至Tomcat报错:Unable to read TLD &;quot;META-INF/c.tld&;quot;
一.发现问题部署项目至Tomcat,输入网址运行,报错 org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR file "file:/C:/Apache Software/Tomcat5.5/webapps/JSPBook/WEB- INF/lib/standard.jar": org.apache.jasper.JasperException: Failed
eclispe-android开发中控件上的文字不能含有&;amp;quot;&;amp;lt;&;amp;quot;或者&;amp;quot;&;amp;gt;&;amp;quot;,这该怎么办
问题描述 android开发中控件上的文字不能含有"<"或者">",这该怎么办 比如:android:text="测试" 这样可以 但是android:text="<测试"这样就报错 我主要做个 类似 后退功能的 按钮..可是发现添加不了"<"或者">" 该怎么办 解决方案 我去,这里也发不了特殊字符 解决方案二: ## bbd 解决方案三: 写成 <
pom xml-maven项目中servlet.xml中出现 &;amp;quot;oscache:config&;amp;quot; is not bound.错误
问题描述 maven项目中servlet.xml中出现 "oscache:config" is not bound.错误 在pom.xml中加了依赖oscache的jar包.代码如下:com.opensymphonyoscache2.4.1 在servlet.xml中出现The prefix ""oscache"" for element ""oscache:config"" is not bound.错误
android studio android:text=&;amp;quot;@string/button_send&;amp;quot;
问题描述 android studio android:text="@string/button_send" android studio新建button这句话不懂:android:text="@string/button_send" 请教个问题:android studio里面新建button里面有一句:android:text="@string/button_send".在string.xml里面有一句:Send 能不能这样理解:button
&;quot;PageMethods未定义&;quot;或&;quot;对象不支持此属性或方法&;quot;解决方法分享
1.检查web.config中是否加入对于asp.net ajax的支持的代码 2.检查ScriptManager中是否设置了EnableMethods=true 3.检查后台cs中是否引用的命名空间System.Web.Services或者加入了[System.Web.Services.WebMethod] 4.后台函数必须是public static 5. 还有一种情况就是,通常,有些人在复制这个aspx页面时,经常是连同,<%@ Page Language="C#" Aut