Entrega entre interface e lógica de negócios em Delphi
J xue (zhuam)[email protected]
Antes de iniciar o desenvolvimento do software Delphi, eu estava envolvido no desenvolvimento de software Java.
O projeto recente foi desenvolvido com Delphi, então eu olhou para Delphi novamente. Quando eu desenvolvo e desenho o software! Ah, vamos falar menos, vamos direto ao ponto!
Delphi é um IDE para o desenvolvimento rápido de software.
1. Por exemplo, se eu quiser inserir um registro no banco de dados, esta é a maneira usual!
Exemplo SQL: Inserir em Exampletable1 (Field1, Field2, Field3) (valores1, valores2, valores3)
Agora, suponha que haja três controles de texto nesta forma Delphi, o nome é Frist, segundo e três respectivamente
Aqui eu uso três métodos diferentes para inserir dados no banco de dados:
1. Insira diretamente
Cliente ------------> Banco de dados
Inserir em Exampletable1 (Field1, Field2, Field3) (Frist.Text, Second.Text, Three.Text)
2. Inserção indireta
Cliente --- (Passo de texto) ---> dataclass -------> banco de dados
Isso significa que os dados do formulário são salvos primeiro em uma classe de dados e, em seguida, o usuário pega os dados dessa classe de dados e transfere os dados.
Passe para o banco de dados
Perceber:
O controle do formulário armazena diretamente dados na classe DataClass Data através do texto.
Esse dataclass é usado apenas para armazenar o estado de dados e está cheio de atributos e não tem implementação de lógica de negócios!
do seguinte modo:
{------------------------------------------------- -------------------------------------------------------- ------------------------------
Autor: Zhuam
Data: 2004/09/04
Tipo: classe
Propriedade: Todo
Descrição: Usado para salvar as informações da carteira de motorista do membro,
-------------------------------------------------------- -------------------------------------------------------- ------------------------------
tipo
TassociatorRunbean = classe (objeto)
Privado
Fkilometre: duplo;
Fcarnumber: string;
Fnumber17: string;
FCARCOLOR: String;
FassociatorID: String;
Fcarcapacity: string;
FfRameNumber: string;
FengineNumber: string;
FavilhabilidadeDate: tdate;
Fregisterdate: tdate;
FbackPicture: Timage;
FfrontPicture: Timage;
FLEFTPICTURE: TIMA;
FrightPicture: Timage;
função getBackPicture: Timage;
função getFrontPicture: Timage;
função getLeftPicture: Timage;
Função GetRightPicture: Timage;
procedimento setassociatorId (const valor: string);
Procedimento SetAvailabilityDate (Valor const: TDATE);
Procedimento Letrancture (Valor const: Timage);
Procedimento setCarcapacity (Valor const: String);
Procedimento setCarcolor (const valor: string);
procedimento setCarnumber (const valor: string);
procedimento setEngineNumber (const valor: string);
Procedimento setFRameNumber (Valor const: String);
Procedimento setFrontPicture (Valor const: Timage);
procedimento setkilometre (valor const: duplo);
Procedimento SetLeftPicture (Valor const: TIMAGE);
Procedimento setNumber17 (Valor const: String);
Procedimento setRegisterDate (Valor const: tdate);
Procedimento SetrightPicture (const Value: Timage);
público
construtor Criar;
Destructor Destruir; substituir;
Propriedade AssociatorId: String Read FassociatorId Write SetAssociatorId;
Propriedade Carnumber: String Leia FCarnumber Write SetCarnumber;
Carcolor de propriedade: String Leia FCarcolor Write SetCarcolor;
Propriedade Carmode: String Leia FCarcolor Write SetCarcolor;
Propriedade EngineNumber: String Leia o fengineNumber Write setEngineNumber;
Propriedade FRAMENBORME: String Leia FFReNumber Write setFrameNumber; // Número do quadro
Carcapacidade da propriedade: String Leia FCARCAPACY WRITE SetCarcApacity;
Propriedade Número17: String Read FNumber17 Write SetNumber17;
Quilômetro de propriedade: Leia dupla FKILOMETRE SetKilometre;
Propriedade Registerdate: tdate leia o fregisterdate write setRegisterDate;
Propriedade Disponibilidade Data: TDATE LEIA FAVAILIBILIDADE DO FAVAILIDADE SETAVAILIDADE DATA; // Data eficiente
Propriedade FrontPicture: Timage Leia GetFrontPicture Write setFrontPicture;
Backpicture da propriedade: TIMA LEIA GetBackPicture Write ScerbackPicture;
Propriedade LeftPicture: Timage Leia GetLeftPicture Write SetleftPicture;
Propriedade RightPicture: TIMAGE LEIDA GETRIGHTPICTURE WRITE STetLetrightPicture;
fim;
Inserir em Exampletable1 (Field1, Field2, Field3) Valores (AssociatorRunbean.Frist, AssociatorRunbean.Second, AssociatorRunbean.Text)
3. Inserção indireta
cliente --- (entrega de propriedade personalizada) ---> dataclass -------> banco de dados
Isso significa que os dados do formulário são salvos primeiro em uma classe de dados e, em seguida, o usuário pega os dados dessa classe de dados e transfere os dados.
Passe para o banco de dados
Perceber:
O controle de formulário armazena diretamente os dados na classe de dados (DATACLASS) por meio de uma propriedade personalizada.
Esse dataclass é usado apenas para armazenar o estado de dados e está cheio de atributos e não tem implementação de lógica de negócios!
Inserir em Exampletable1 (Field1, Field2, Field3) Valores (AssociatorRunbean.Frist, AssociatorRunbean.Second, AssociatorRunbean.Text)
Falando nisso, alguém vai me perguntar, qual é o significado de perceber dessa maneira! Campeadas cuidadosos podem ter notado!
Esta é uma maneira de separar a interface Delphi da lógica de negócios.