delphi设计模式 多语言开发
2012-05-31 14:23
337 查看
系统支持简体、繁体、英文三种语言,开发语言Delphi
type
//接口定义
ILanguageTrans = interface
['{EE1BAE27-2E88-4F76-8AF3-169B6C7BF7C1}']
procedure ReadForm; //把界面所有控件翻译
procedure WriteForm;//把界面所有控件写入
function GetText(Msg: string): string;
function BIG5ToGB(Str: string): string;
function GBToBIG5(Str: string): string;
procedure ShowManager; //打开管理界面
end;
TLanguageTrans = class(TInterfacedObject, ILanguageTrans)
private
protected
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ShowManager; virtual; //管理界面
procedure ReadForm; virtual;
procedure WriteForm; virtual;
function GetText(Msg: string): string; virtual;
function BIG5ToGB(Value: string): string; virtual;
function GBToBIG5(Value: string): string; virtual;
end;
// 保存到数据库
TDBLanguageTrans = class(TLanguageTrans)
private
FFrmForm: TForm;
FTranDataSet: TClientDataSet;
FDB: TDBClass;
FMTSName: string;
FModuleCode: string;
function ReadData(ConName: string): string;
protected
published
property frmForm: TForm read FFrmForm write FFrmForm;
property TranDataSet: TClientDataSet read FTranDataSet write FTranDataSet;
property DB: TDBClass read FDB write FDB;
property MTSName: string read FMTSName write FMTSName;
property ModuleCode: string read FModuleCode write FModuleCode;
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ShowManager; override;
procedure ReadForm; override;
procedure WriteForm; override;
end;
// INI
TIniLanguageTrans = class(TLanguageTrans)
private
FIniFileName: string;
FFrmForm: TForm;
published
property IniFileName: string read FIniFileName write FIniFileName;
property frmForm: TForm read FFrmForm write FFrmForm;
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ReadForm; override;
procedure WriteForm; override;
procedure ShowManager; override;
end;
//工厂模式
TLanguageTransFactory = class
private
public
function Create(Form: TForm; MTSName, ModuleCode: string): TLanguageTrans;
end;
客户端调用:
var
LanguageTransFactory: TLanguageTransFactory;
begin
(LanguageTransFactory.Create(self, MTSName, ModuleCode)).ReadForm;
如果增加或更改存储方式,如XML,只需在工厂类修改代码,其它客户端调用的地方不必修改,实现客户端代码与类的松散耦合
type
//接口定义
ILanguageTrans = interface
['{EE1BAE27-2E88-4F76-8AF3-169B6C7BF7C1}']
procedure ReadForm; //把界面所有控件翻译
procedure WriteForm;//把界面所有控件写入
function GetText(Msg: string): string;
function BIG5ToGB(Str: string): string;
function GBToBIG5(Str: string): string;
procedure ShowManager; //打开管理界面
end;
TLanguageTrans = class(TInterfacedObject, ILanguageTrans)
private
protected
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ShowManager; virtual; //管理界面
procedure ReadForm; virtual;
procedure WriteForm; virtual;
function GetText(Msg: string): string; virtual;
function BIG5ToGB(Value: string): string; virtual;
function GBToBIG5(Value: string): string; virtual;
end;
// 保存到数据库
TDBLanguageTrans = class(TLanguageTrans)
private
FFrmForm: TForm;
FTranDataSet: TClientDataSet;
FDB: TDBClass;
FMTSName: string;
FModuleCode: string;
function ReadData(ConName: string): string;
protected
published
property frmForm: TForm read FFrmForm write FFrmForm;
property TranDataSet: TClientDataSet read FTranDataSet write FTranDataSet;
property DB: TDBClass read FDB write FDB;
property MTSName: string read FMTSName write FMTSName;
property ModuleCode: string read FModuleCode write FModuleCode;
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ShowManager; override;
procedure ReadForm; override;
procedure WriteForm; override;
end;
// INI
TIniLanguageTrans = class(TLanguageTrans)
private
FIniFileName: string;
FFrmForm: TForm;
published
property IniFileName: string read FIniFileName write FIniFileName;
property frmForm: TForm read FFrmForm write FFrmForm;
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ReadForm; override;
procedure WriteForm; override;
procedure ShowManager; override;
end;
//工厂模式
TLanguageTransFactory = class
private
public
function Create(Form: TForm; MTSName, ModuleCode: string): TLanguageTrans;
end;
客户端调用:
var
LanguageTransFactory: TLanguageTransFactory;
begin
(LanguageTransFactory.Create(self, MTSName, ModuleCode)).ReadForm;
如果增加或更改存储方式,如XML,只需在工厂类修改代码,其它客户端调用的地方不必修改,实现客户端代码与类的松散耦合
相关文章推荐
- 【ios开发技术】Swift 语言深入--Swift设计模式 (2/2)
- 【ios开发技术】Swift 语言深入--Swift设计模式 (1/2)
- Delphi 工厂模式 应用于多种语言开发
- 设计模式是软件的灵魂, 开发语言是多种实现的一种
- iOS开发核心语言Objective C语言 —— 特有语法及设计模式
- 干净搞定delphi多语言-兼论设计模式
- c#winform:开发多语言应用程序---多国语言本地化与设计模式的思考----观察者模式+工厂模式!
- iOS开发核心语言Objective C语言 —— 特有语法及设计模式
- java开发中23种设计模式的总结
- Java开发中的23种设计模式详解
- iOS开发设计策略模式
- 设计模式-Java开发中的23种设计模式详解
- 设计模式中遵循的原则:单一职责、开发-封闭、依赖倒转
- iOS开发之delegate设计模式
- 游戏开发中常用的设计模式
- 3.Java开发中的23种设计模式详解(转)
- java设计模式_工厂模式在开发中的运用
- Java开发中的23种设计模式详解(转)
- Java开发中的23种设计模式详解(转)
- Android App 开发 设计模式第六篇:原型模式