Heim  >  Artikel  >  Backend-Entwicklung  >  Eine gekapselte asp.net-Bestätigungscodeklasse

Eine gekapselte asp.net-Bestätigungscodeklasse

高洛峰
高洛峰Original
2017-01-13 14:20:28999Durchsuche

Die erste Überlegung ist, ob diese Attribute des Verifizierungscodes festgelegt werden können (das heißt, ob sie in eine Klasse gekapselt und dann durch Offenlegung öffentlicher Attribute und Methoden verwendet werden oder ob die Verifizierung direkt im allgemeinen Handler implementiert wird). Das Ergebnis ist leider das letztere... Der darin enthaltene Algorithmus fühlt sich ziemlich gut an, zumindest für jemanden wie mich, der sich kaum mit Algorithmen auskennt, also dachte ich darüber nach, ihn zu kapseln. Sie hat ihn dann schamlos in ihre eigene Klassenbibliothek integriert ^^

Analysieren Sie zunächst die Mängel in diesem Code (was sie denkt):
1. Für die prozedurale Programmierung, wenn Sie die Eigenschaften des Bestätigungscodes ändern möchten, z. B. die Änderung der Schriftgröße, der Hintergrundfarbe usw Details müssen Sie den relevanten Code im allgemeinen Verarbeitungsprogramm finden und ändern. Dieser Code ist jedoch besser. Er trennt die Generierung der Bestätigungscodezeichenfolge und die Bildgenerierung in verschiedene Methoden, sodass die zu ändernden Stellen leichter gefunden werden können.
2. Wenn ich diese Funktion an anderen Stellen anwenden möchte, beispielsweise in einem Winform-Programm, kann dieser Code nicht in Form einer Komponente (einer DLL) wiederverwendet, sondern kopiert, eingefügt und geändert werden ...
3. Ich habe nicht festgestellt, dass der Bestätigungscode nach der Generierung gespeichert wurde (- -!)

Natürlich sind die sogenannten Mängel relativ, das heißt, wenn Sie Zeit dafür haben Denken Sie darüber nach und entwerfen Sie dann langsam eine Verifizierungscode-Klasse. Sie kann auf jeden Fall eine relativ gute Klasse sein, aber wenn Sie an einem Projekt arbeiten und das Projekt dringend ist, ist ein solcher Code tatsächlich leistungsfähiger. Die orientierte Entwurfsmustercode-Entkopplung ist nur eine Wolke ~~~

Der nächste Schritt ist meine Modifikation dieses Codes. Zuerst bestimme ich, welchen Effekt ich möchte, das heißt, wie ich ihn verwenden möchte, nachdem ich ihn gekapselt habe. Zunächst hoffe ich, dass ich bei der Verwendung nur eine neue Verifizierungscode-Instanz erstellen muss (bei Bedarf kann ich verschiedene Attribute des Verifizierungscodes beliebig festlegen) und dann bestimmte Methoden dieser Instanz aufrufen kann, um Zeichenfolgen zu verwenden , Streams, Bitmap-Objekte bzw. Byte. Erhalten Sie diesen Verifizierungscode in Form eines Arrays (beachten Sie, dass diese Verifizierungscode-Klasse nicht die Funktion zum Speichern des Verifizierungscodes im Kontext enthält. Ich persönlich bin der Meinung, dass dies das Generieren des Verifizierungscodes ist und das Speichern des Verifizierungscodes im Kontext sind zwei verschiedene Funktionen. Es ist nicht erforderlich, diese Funktion in der Verifizierungscode-Klasse hinzuzufügen. In diesem Fall wird der Code im allgemeinen Verarbeitungsprogramm äußerst einfach. Erstellen Sie zunächst einfach einen Bestätigungscode mit new, rufen Sie dann die Methode auf, um den Bestätigungscode in Form einer Zeichenfolge zu erhalten, und speichern Sie ihn dann morgens und nachmittags . Ob es in der Sitzung oder im Cookie vorhanden ist Es kommt nach Bedarf, und die Verifizierungscode-Klasse kümmert sich nicht darum, dann ruft sie eine andere Methode auf, um den Verifizierungscode in Form eines Byte-Arrays zu erhalten, damit das Bild über die Methode context.Response.BinaryWrite() ausgegeben werden, d. h. Das allgemeine Verarbeitungsprogramm enthält nur drei Codezeilen. Der aufrufende Code lautet ungefähr wie folgt:

/// <summary> 
/// 获取验证码(一般处理程序入口函数) 
/// </summary> 
/// <param name="context">当前上下文</param> 
public void ProcessRequest(HttpContext context) 
{ 
// 创建验证码 
ValidateCode validateCode = new ValidateCode(); 
// 获取验证码(字符串),写入Session 
context.Session["SomeValidateCode"] = validateCode.GetString(); 
// 输出验证码(图片) 
context.Response.BinaryWrite(validateCode.GetByteArray()); 
}

PS: Ich erinnere mich, dass der Code zu Beginn meiner Arbeit sehr schlecht geschrieben war (schlechter als jetzt, als ich ihn direkt verwendete). Ich habe nie darüber nachgedacht, den Code zu ändern oder zu kapseln, das hat mir mein Meister damals beigebracht und ich war sehr beeindruckt. Ich persönlich bin der Meinung, dass es nichts Falsches ist, den Code anderer Leute zu verwenden, um zumindest die Benutzerfreundlichkeit des Codes zu beweisen. Darüber hinaus sind einige Dinge nicht so gut, wie andere denken Wenn Sie sie nutzen möchten, dürfen Sie den Code anderer Personen nicht blind verwenden. Nehmen Sie am besten die erforderlichen Änderungen oder Kapselungen entsprechend Ihrer tatsächlichen Situation vor, auch wenn es sich nur um eine einfache Ebene handelt. Wenn das Projekt dringend ist, ist es natürlich Zeitverschwendung. Kurz gesagt, denken Sie nicht darüber nach, verwenden Sie es, sobald Sie es erhalten, und stellen Sie zumindest den Schlüsselcode oder die Gesamtstruktur sicher Der Code ist klar.

Weitere Artikel zum Thema gekapselter asp.net-Bestätigungscode finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn