ಟ್ಯುಟೋರಿಯಲ್

ವಸ್ತು-ಆಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನ 5 ತತ್ವಗಳು ಯಾವುವು ಎಂದು SOLID ಮಾಡಿ

SOLID ಎನ್ನುವುದು ಸಂಕ್ಷಿಪ್ತ ರೂಪವಾಗಿದೆ, ಇದು ವಸ್ತು-ಆಧಾರಿತ ವಿನ್ಯಾಸದ (OOD ಅಥವಾ OOP) ಐದು ತತ್ವಗಳನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ. ಇವುಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ನಿರ್ವಹಿಸಲು ಮತ್ತು ವಿಸ್ತರಿಸಲು ಸುಲಭವಾದ ಸಾಫ್ಟ್‌ವೇರ್ ರಚಿಸಲು ಡೆವಲಪರ್‌ಗಳು ಬಳಸಬಹುದಾದ ಮಾರ್ಗಸೂಚಿಗಳು. ಈ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ನಿಮ್ಮನ್ನು ಉತ್ತಮ ಡೆವಲಪರ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸಾಫ್ಟ್‌ವೇರ್ ನಿರ್ವಹಣಾ ಸಮಸ್ಯೆಗಳನ್ನು ತಪ್ಪಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉತ್ತಮ ಪ್ರೋಗ್ರಾಮರ್ ಎಂದು ಅರ್ಥವೇನು?

ಸಾಫ್ಟ್‌ವೇರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನಲ್ಲಿ ಸ್ವಲ್ಪ ಅನುಭವವಿರುವ ಯಾರಾದರೂ ತಮ್ಮ ವೃತ್ತಿಜೀವನದ ಹಾದಿಯನ್ನು ಆಧರಿಸಿ ತೀರ್ಪು ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಇತರರು ಬರೆದ ಸಾಫ್ಟ್‌ವೇರ್ ಕೋಡ್ ಅನ್ನು ನಿರ್ಣಯಿಸುತ್ತಾರೆ.

ನನ್ನ ವೃತ್ತಿಪರ ವೃತ್ತಿಜೀವನದ ಅವಧಿಯಲ್ಲಿ, ನಾನು ಅನೇಕ ಡೆವಲಪರ್‌ಗಳನ್ನು ತಿಳಿದಿದ್ದೇನೆ ಮತ್ತು ನಾನು ಸಾವಿರಾರು ಕೋಡ್‌ಗಳನ್ನು ನೋಡಿದ್ದೇನೆ ಮತ್ತು ಡೆವಲಪರ್‌ನ ಕೌಶಲ್ಯವನ್ನು ನಿರ್ಣಯಿಸಬೇಕಾದಾಗ ನಾನು ಮುಖ್ಯವಾಗಿ ಎರಡು ಅಂಶಗಳನ್ನು ನೋಡುತ್ತೇನೆ:

  • ಕೋಡ್ ಓದುವಲ್ಲಿ ಸರಳತೆ;
  • ಕಾಲಾನಂತರದಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಮತ್ತು ವಿಕಸನಗೊಳ್ಳಲು ಅವರ ಕೋಡ್ ಎಷ್ಟು ಸಾಧ್ಯ.

ಅದೃಷ್ಟವಶಾತ್, ಕೋಡಿಂಗ್‌ನಲ್ಲಿ ಉತ್ತಮವಾಗಿರಲು ಸುಲಭವಾಗುವಂತೆ ಕೆಲವು ಮೂಲಭೂತ ಅಥವಾ ತತ್ವಗಳಿವೆ.

SOLID ಎಂಬ ಸಂಕ್ಷಿಪ್ತ ರೂಪವನ್ನು ಸೂಚಿಸುತ್ತದೆ:
S: ಏಕ ಜವಾಬ್ದಾರಿಯ ತತ್ವ
O: ಮುಕ್ತ-ಮುಚ್ಚಿದ ತತ್ವ
L: ಲಿಸ್ಕೋವ್ ಬದಲಿ ತತ್ವ
I: ಇಂಟರ್ಫೇಸ್ ಪ್ರತ್ಯೇಕತೆಯ ತತ್ವ
D: ಅವಲಂಬನೆಗಳ ವಿಲೋಮ ತತ್ವ

ಮೊದಲ SOLID ತತ್ವವನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸೋಣ, ಅವುಗಳೆಂದರೆ

ಏಕ ಜವಾಬ್ದಾರಿ ತತ್ವ

ಒಂದು ವರ್ಗ (ಅಥವಾ ಮಾಡ್ಯೂಲ್) ಬದಲಾಗಲು, ವಿಕಾಸಗೊಳ್ಳಲು ಒಂದೇ ಒಂದು ಕಾರಣವನ್ನು ಹೊಂದಿರಬೇಕು.

ಪರಿಕಲ್ಪನೆಯು ತುಂಬಾ ಸರಳವಾಗಿದೆ, ಆದರೆ ಈ ಸರಳತೆಯನ್ನು ಸಾಧಿಸಲು ಅನುಷ್ಠಾನದ ಮಾರ್ಗವು ತುಂಬಾ ಜಟಿಲವಾಗಿದೆ. ಒಂದು ವರ್ಗವು ಬದಲಾಗಲು ಒಂದೇ ಒಂದು ಕಾರಣವನ್ನು ಹೊಂದಿರಬೇಕು.

ಆದರೆ ಯಾಕೆ? 

ಬದಲಾಯಿಸಲು ಒಂದೇ ಒಂದು ಕಾರಣವನ್ನು ಹೊಂದಿರುವುದು ಏಕೆ ಮುಖ್ಯ?

ಉದಾಹರಣೆಗೆ, ಬದಲಾಗಲು ಎರಡು ವಿಭಿನ್ನ ಕಾರಣಗಳಿದ್ದರೆ, ಎರಡು ವಿಭಿನ್ನ ಕಾರಣಗಳಿಗಾಗಿ ಎರಡು ವಿಭಿನ್ನ ತಂಡಗಳು ಒಂದೇ ಕೋಡ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದೆಂದು ಕಲ್ಪಿಸಬಹುದಾಗಿದೆ. ಪ್ರತಿಯೊಬ್ಬರೂ ತಮ್ಮದೇ ಆದ ಪರಿಹಾರವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ, ಇದು ಸಂಕಲಿಸಿದ ಭಾಷೆಯ ಸಂದರ್ಭದಲ್ಲಿ (ಉದಾಹರಣೆಗೆ ಸಿ ++, ಸಿ # ಅಥವಾ ಜಾವಾ) ಇತರ ತಂಡಗಳು ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್‌ನ ಇತರ ಭಾಗಗಳೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗದ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.

ಇನ್ನೊಂದು ಉದಾಹರಣೆ, ನೀವು ವ್ಯಾಖ್ಯಾನಿಸಿದ ಭಾಷೆಯನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ಬೇರೆ ಬೇರೆ ಕಾರಣಗಳಿಗಾಗಿ ನೀವು ಒಂದೇ ವರ್ಗ ಅಥವಾ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಮರುಪರಿಶೀಲಿಸಬೇಕಾಗಬಹುದು. ಇದರರ್ಥ ಗುಣಮಟ್ಟದ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಹೆಚ್ಚಿನ ಕೆಲಸ, ಸಮಯ ಮತ್ತು ಶ್ರಮ.

ಒಂದು ವರ್ಗ ಅಥವಾ ಮಾಡ್ಯೂಲ್ ಹೊಂದಿರಬೇಕಾದ ಒಂದು ವೈಶಿಷ್ಟ್ಯವನ್ನು ಗುರುತಿಸುವುದು ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸಲು ಪರಿಶೀಲನಾಪಟ್ಟಿ ನೋಡುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿದೆ. 

ಆದರೆ ಕಡಿಮೆ ತಾಂತ್ರಿಕ ದೃಷ್ಟಿಕೋನದಿಂದ ಯೋಚಿಸಲು ಪ್ರಯತ್ನಿಸೋಣ, ಅಂದರೆ, ನಮ್ಮ ವರ್ಗ ಅಥವಾ ಮಾಡ್ಯೂಲ್ನ ಬಳಕೆದಾರರನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಪ್ರಯತ್ನಿಸೋಣ, ಅದನ್ನು ಯಾರು ಬಳಸುತ್ತಾರೆ. ನಾವು ಯಾವಾಗಲೂ ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳಬೇಕಾದ ಒಂದು ಮೂಲಭೂತ ಅಂಶವೆಂದರೆ, ನಿರ್ದಿಷ್ಟ ಮಾಡ್ಯೂಲ್‌ನಿಂದ ಸೇವೆ ಸಲ್ಲಿಸುವ ನಾವು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಅಪ್ಲಿಕೇಶನ್ ಅಥವಾ ಸಿಸ್ಟಮ್‌ನ ಬಳಕೆದಾರರು ಅದರಲ್ಲಿ ಮಾರ್ಪಾಡುಗಳನ್ನು ಕೋರುವವರು. ಸೇವೆ ಸಲ್ಲಿಸಿದವರು ವರ್ಗ ಅಥವಾ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಕೇಳುತ್ತಾರೆ. 

ಮಾಡ್ಯೂಲ್‌ಗಳ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಮತ್ತು ಅವುಗಳ ಬಳಕೆ:

  • ನಿರ್ವಹಣೆ ಮಾಡ್ಯೂಲ್: ಬಳಕೆದಾರರು ಡೇಟಾಬೇಸ್ ನಿರ್ವಾಹಕರು ಮತ್ತು ಸಾಫ್ಟ್‌ವೇರ್ ವಾಸ್ತುಶಿಲ್ಪಿಗಳಿಂದ ಕೂಡಿದ್ದಾರೆ.
  • ವರದಿ ಮಾಡುವ ಮಾಡ್ಯೂಲ್: ಬಳಕೆದಾರರು ಕಚೇರಿ ಕೆಲಸಗಾರರು, ಅಕೌಂಟೆಂಟ್‌ಗಳು ಮತ್ತು ಉತ್ಪಾದನೆಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತಾರೆ.
  • ವೇತನದಾರರ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಗೆ ಪಾವತಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡ್ಯೂಲ್: ಬಳಕೆದಾರರು ವಕೀಲರು, ವ್ಯವಸ್ಥಾಪಕರು ಮತ್ತು ಅಕೌಂಟೆಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಿಕೊಳ್ಳಬಹುದು.
  • ಗ್ರಂಥಾಲಯ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಗೆ ಪಠ್ಯ ಹುಡುಕಾಟ ಮಾಡ್ಯೂಲ್: ಬಳಕೆದಾರರನ್ನು ಗ್ರಂಥಪಾಲಕ ಅಥವಾ ಗ್ರಂಥಾಲಯದ ಸಂದರ್ಶಕರು ಮತ್ತು ಗ್ರಾಹಕರು ಪ್ರತಿನಿಧಿಸಬಹುದು.

ಆದ್ದರಿಂದ ಮೊದಲ ಹೆಜ್ಜೆ ಮಾಡ್ಯೂಲ್ನೊಂದಿಗೆ ಇಂಟರ್ಲೋಕ್ಯೂಟರ್ ಪಾತ್ರವನ್ನು ಹೊಂದಿರುವ ನಟರನ್ನು ಅಥವಾ ನಟನನ್ನು ಹುಡುಕಿದರೆ, ಎಲ್ಲಾ ಪಾತ್ರಗಳೊಂದಿಗೆ ವ್ಯಕ್ತಿಗಳನ್ನು ಸಂಯೋಜಿಸುವುದು ಕಷ್ಟಕರವಾಗಿರುತ್ತದೆ. ಒಂದು ಸಣ್ಣ ಕಂಪನಿಯಲ್ಲಿ, ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ಅನೇಕ ಪಾತ್ರಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದು ಮತ್ತು ದೊಡ್ಡ ಕಂಪನಿಯಲ್ಲಿ ಒಂದೇ ಪಾತ್ರವನ್ನು ಹೊಂದಿರುವ ಅನೇಕ ಜನರು ಇರಬಹುದು. 

ಜನರು ಅಥವಾ ಬಳಕೆದಾರರಿಗಿಂತ ಪಾತ್ರಗಳನ್ನು ಗುರುತಿಸುವುದು ಹೆಚ್ಚು ಸಮಂಜಸವಾಗಿದೆ.

ಆದ್ದರಿಂದ:

  • ಸಾಫ್ಟ್ವೇರ್ ಸಿಸ್ಟಮ್ನ ಬಳಕೆ defiಬದಲಾವಣೆಯ ಕಾರಣಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ;
  • ಜವಾಬ್ದಾರಿಯು ಒಂದು ನಿರ್ದಿಷ್ಟ ನಟನ ಅಗತ್ಯಗಳನ್ನು ಪೂರೈಸುವ ಕಾರ್ಯಗಳ ಕುಟುಂಬವಾಗಿದೆ, ಅಂದರೆ, ವ್ಯವಸ್ಥೆಯ ಬಳಕೆದಾರ;
  • ನಟರು, ಬಳಕೆದಾರರು ಕ್ರಿಯಾತ್ಮಕತೆಯ ಕುಟುಂಬಕ್ಕೆ ಬದಲಾವಣೆಯ ಮೂಲವಾಗುತ್ತಾರೆ, ಅದು ಬಳಕೆದಾರರ ಅಗತ್ಯವನ್ನು ಪೂರೈಸಬೇಕು;
  • ಬಳಕೆದಾರರ ಅಗತ್ಯಗಳ ವಿಕಸನ, ಕ್ರಿಯಾತ್ಮಕತೆಯ ವಿಕಾಸವನ್ನು ಪ್ರೇರೇಪಿಸುತ್ತದೆ;

ಕೆಲವು ಉದಾಹರಣೆಗಳನ್ನು ನೋಡೋಣ

ನಮ್ಮಲ್ಲಿ ಪುಸ್ತಕ ವರ್ಗವಿದೆ ಎಂದು ಭಾವಿಸೋಣ ಅದು ಪುಸ್ತಕದ ಪರಿಕಲ್ಪನೆಯನ್ನು ಮತ್ತು ಅದರ ಕ್ರಿಯಾತ್ಮಕತೆಯನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ.

ವರ್ಗ ಪುಸ್ತಕ {

    getTitle () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಒಂದು ದೊಡ್ಡ ಪುಸ್ತಕ”;

    }

    getAuthor () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಅಲೆಸ್ಸಾಂಡ್ರೊ ಬರಿಕೊ”;

    }

    ಮುಂದಿನ ಪುಟ () function

        // ಮುಂದಿನ ಪುಟ

    }

    ಕಾರ್ಯ ಮುದ್ರಣ ಪ್ರಸ್ತುತ ಪುಟ () {

        ಪ್ರತಿಧ್ವನಿ “ಪ್ರಸ್ತುತ ಪುಟದ ವಿಷಯ”;

    }

}

ಇದು ತುಂಬಾ ಸಾಮಾನ್ಯ ವರ್ಗ. ನಮ್ಮಲ್ಲಿ ಪುಸ್ತಕವಿದೆ, ಮತ್ತು ವರ್ಗವು ನಮಗೆ ಶೀರ್ಷಿಕೆಯನ್ನು ನೀಡಬಹುದು, ಅವರು ನಮಗೆ ಲೇಖಕರನ್ನು ನೀಡಬಹುದು ಮತ್ತು ಅವರು ಮುಂದುವರಿಯಬಹುದು. ಅಂತಿಮವಾಗಿ, ಇದು ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ಪರದೆಯ ಮೇಲೆ ಮುದ್ರಿಸುವ ಸಾಮರ್ಥ್ಯ ಹೊಂದಿದೆ. 

ಆದಾಗ್ಯೂ, ಒಂದು ಸಣ್ಣ ಸಮಸ್ಯೆ ಇದೆ. 

ಪುಸ್ತಕ ವಸ್ತುವಿನ ನಿರ್ವಹಣೆಯಲ್ಲಿ ತೊಡಗಿರುವ ನಟರ ಬಗ್ಗೆ ಯೋಚಿಸಿದರೆ, ಅವರು ಯಾರು ಆಗಿರಬಹುದು? 

ನಾವು ಇಲ್ಲಿ ಎರಡು ವಿಭಿನ್ನ ನಟರ ಬಗ್ಗೆ ಸುಲಭವಾಗಿ ಯೋಚಿಸಬಹುದು: ಪುಸ್ತಕ ನಿರ್ವಹಣೆ (ಎಂದು ಗ್ರಂಥಪಾಲಕ) ಇ ಡೇಟಾ ಸಲ್ಲಿಕೆ ಕಾರ್ಯವಿಧಾನ (ನಾವು ಬಳಕೆದಾರರಿಗೆ ವಿಷಯವನ್ನು ಹೇಗೆ ತಲುಪಿಸಲು ಬಯಸುತ್ತೇವೆ: ಆನ್-ಸ್ಕ್ರೀನ್, ಗ್ರಾಫಿಕಲ್ ಯೂಸರ್ ಇಂಟರ್ಫೇಸ್, ಪಠ್ಯ-ಮಾತ್ರ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್, ಬಹುಶಃ ಮುದ್ರಿಸಬಹುದು). 

ಆದ್ದರಿಂದ ನಾವು ಎರಡು ವಿಭಿನ್ನ ನಟರನ್ನು ವರ್ಗದೊಂದಿಗೆ ಸಂವಹನ ಮಾಡುತ್ತಿದ್ದೇವೆ.

ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಈ ವರ್ಗವು ಇದರ ನಡುವೆ ಬೆರೆಯುತ್ತದೆ:

  • ವ್ಯವಹಾರ ತರ್ಕ 
  • ಪ್ರಸ್ತುತಿ 

ಇದು ಒಂದು ಸಮಸ್ಯೆಯಾಗಬಹುದು ಏಕೆಂದರೆ ಇದು ಏಕ ಹೊಣೆಗಾರಿಕೆ ತತ್ವವನ್ನು (ಎಸ್‌ಆರ್‌ಪಿ) ಉಲ್ಲಂಘಿಸುತ್ತದೆ. 

ಒಂದೇ ಜವಾಬ್ದಾರಿಯ ತತ್ವವನ್ನು ಗೌರವಿಸಲು ನಾವು ಈ ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ಸುಧಾರಿಸಬಹುದು?

ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ನೋಡೋಣ:

ವರ್ಗ ಪುಸ್ತಕ {

    getTitle () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಓಷಿಯಾನೊ ಮೇರ್”;

    }

    getAuthor () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಅಲೆಸ್ಸಾಂಡ್ರೊ ಬರಿಕೊ”;

    }

    ಕಾರ್ಯ ತಿರುವು ಪುಟ () {

        // ಮುಂದಿನ ಪುಟ

    }

    getCurrentPage () ಕ್ರಿಯೆ {

        ಪ್ರತಿಧ್ವನಿ “ಪ್ರಸ್ತುತ ಪುಟದ ವಿಷಯ”;

    }

}

ಇಂಟರ್ಫೇಸ್ ಪ್ರಿಂಟರ್ {

    ಕಾರ್ಯ ಮುದ್ರಣ ಪುಟ ($ ಪುಟ);

ನಾವೀನ್ಯತೆ ಸುದ್ದಿಪತ್ರ
ನಾವೀನ್ಯತೆಯ ಪ್ರಮುಖ ಸುದ್ದಿಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳಬೇಡಿ. ಇಮೇಲ್ ಮೂಲಕ ಅವುಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸೈನ್ ಅಪ್ ಮಾಡಿ.

}

ವರ್ಗ ಸ್ಟ್ಯಾಂಪಾಲಿಬ್ರೊ ಮುದ್ರಕವನ್ನು ಅಳವಡಿಸುತ್ತದೆ {

    ಕಾರ್ಯ ಮುದ್ರಣ ಪುಟಗಳು ($ ಪುಟ) {

        ಪ್ರತಿಧ್ವನಿ $ ಪುಟ;

    }

}

 

ವರ್ಗ HtmlPrinter ಮುದ್ರಕವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ {

    ಕಾರ್ಯ ಮುದ್ರಣ ಪುಟಗಳು ($ ಪುಟ) {

        ಪ್ರತಿಧ್ವನಿ ' '. $ ಪುಟ. ' ';

    }

}

ವ್ಯವಹಾರ ತರ್ಕದಿಂದ ಪ್ರಸ್ತುತಿಯನ್ನು ಹೇಗೆ ಬೇರ್ಪಡಿಸಬೇಕು ಎಂಬುದನ್ನು ಈ ಸರಳ ಉದಾಹರಣೆಯು ತೋರಿಸುತ್ತದೆ, ಮತ್ತು ಎಸ್‌ಆರ್‌ಪಿಗೆ ಅನುಸಾರವಾಗಿ ಇದು ನಮ್ಮ ಯೋಜನೆಯ ನಮ್ಯತೆಗೆ ಹೆಚ್ಚಿನ ಅನುಕೂಲಗಳನ್ನು ನೀಡುತ್ತದೆ.

ಇನ್ನೊಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ:

ಮೇಲಿನದಕ್ಕೆ ಹೋಲುವ ಉದಾಹರಣೆಯೆಂದರೆ, ವಸ್ತುವೊಂದು ಪ್ರಸ್ತುತಿಯಿಂದ ತನ್ನನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ಹಿಂಪಡೆಯಬಹುದು.

ವರ್ಗ ಪುಸ್ತಕ {

    getTitle () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಓಷಿಯಾನೊ ಮೇರ್”;

    }

    getAuthor () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಅಲೆಸ್ಸಾಂಡ್ರೊ ಬರಿಕೊ”;

    }

    ಕಾರ್ಯ ತಿರುವು ಪುಟ () {

        // ಮುಂದಿನ ಪುಟ

    }

    getCurrentPage () ಕ್ರಿಯೆ {

        "ಪ್ರಸ್ತುತ ಪುಟದ ವಿಷಯ" ಹಿಂತಿರುಗಿ;

    }

    ಕಾರ್ಯ ಉಳಿಸು () {

        $ filename = '/ ದಾಖಲೆಗಳು /'. $ this-> getTitolo (). '-'. $ this-> getAuthor ();

        file_put_contents ($ ಫೈಲ್ ಹೆಸರು, ಧಾರಾವಾಹಿ ($ ಇದು));

    }

}

ಮೊದಲಿನಂತೆ, ಇಲ್ಲಿಯೂ ಸಹ ನಾವು ವಿಭಿನ್ನ ನಟರನ್ನು ಗುರುತಿಸಬಹುದು ಪುಸ್ತಕ ನಿರ್ವಹಣೆ (ಎಂದು ಗ್ರಂಥಪಾಲಕ) ಇ ನಿರಂತರತೆ. ನಾವು ಪುಟದಿಂದ ಪುಟಕ್ಕೆ ಚಲಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸಿದಾಗ, ನಾವು ಈ ವರ್ಗವನ್ನು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. ಬದಲಾವಣೆಗೆ ನಾವು ಹಲವಾರು ಕಾರಣಗಳನ್ನು ಹೊಂದಬಹುದು.

ವರ್ಗ ಪುಸ್ತಕ {

    getTitle () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಓಷಿಯಾನೊ ಮೇರ್”;

    }

    getAuthor () ಕ್ರಿಯೆ {

        ಹಿಂತಿರುಗಿ “ಅಲೆಸ್ಸಾಂಡ್ರೊ ಬರಿಕೊ”;

    }

    ಕಾರ್ಯ ತಿರುವು ಪುಟ () {

        // ಮುಂದಿನ ಪುಟ

    }

    getCurrentPage () ಕ್ರಿಯೆ {

        "ಪ್ರಸ್ತುತ ಪುಟದ ವಿಷಯ" ಹಿಂತಿರುಗಿ;

    }

}

ವರ್ಗ ಸಿಂಪಲ್ಫೈಲ್ ಪರ್ಸಿಸ್ಟೆನ್ಸ್ {

    ಫಂಕ್ಷನ್ ಸೇವ್ (ಪುಸ್ತಕ $ ಪುಸ್ತಕ) {

        $ filename = '/ ದಾಖಲೆಗಳು /'. $ ಪುಸ್ತಕ-> ಗೆಟ್‌ಟೈಟಲ್ (). '-'. $ book-> getAuthor ();

        file_put_contents ($ ಫೈಲ್ ಹೆಸರು, ಧಾರಾವಾಹಿ ($ ಪುಸ್ತಕ));

    }

}

ನಿರಂತರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮತ್ತೊಂದು ವರ್ಗಕ್ಕೆ ಸರಿಸುವುದರಿಂದ ಜವಾಬ್ದಾರಿಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಪ್ರತ್ಯೇಕಿಸುತ್ತದೆ ಮತ್ತು ನಮ್ಮ ಪುಸ್ತಕ ವರ್ಗಕ್ಕೆ ಧಕ್ಕೆಯಾಗದಂತೆ ನಿರಂತರ ವಿಧಾನಗಳನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಲು ನಾವು ಮುಕ್ತರಾಗುತ್ತೇವೆ. ಉದಾಹರಣೆಗೆ, ಡೇಟಾಬೇಸ್ ಪರ್ಸಿಸ್ಟೆನ್ಸ್ ವರ್ಗವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಕ್ಷುಲ್ಲಕವಾಗಿದೆ ಮತ್ತು ಪುಸ್ತಕ ಕಾರ್ಯಾಚರಣೆಗಳ ಸುತ್ತಲೂ ನಿರ್ಮಿಸಲಾದ ನಮ್ಮ ವ್ಯವಹಾರ ತರ್ಕವು ಬದಲಾಗುವುದಿಲ್ಲ.

ಓಪನ್ / ಕ್ಲೋಸ್ಡ್ -> ಎಂಬ ಎರಡನೇ ತತ್ವವನ್ನು ಓದುವ ಮೂಲಕ ಮುಂದುವರಿಸಿ

Ercole Palmeri

ನಾವೀನ್ಯತೆ ಸುದ್ದಿಪತ್ರ
ನಾವೀನ್ಯತೆಯ ಪ್ರಮುಖ ಸುದ್ದಿಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳಬೇಡಿ. ಇಮೇಲ್ ಮೂಲಕ ಅವುಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸೈನ್ ಅಪ್ ಮಾಡಿ.

ಇತ್ತೀಚಿನ ಲೇಖನಗಳು

ಆಗ್ಮೆಂಟೆಡ್ ರಿಯಾಲಿಟಿಯಲ್ಲಿ ನವೀನ ಹಸ್ತಕ್ಷೇಪ, ಕ್ಯಾಟಾನಿಯಾ ಪಾಲಿಕ್ಲಿನಿಕ್‌ನಲ್ಲಿ ಆಪಲ್ ವೀಕ್ಷಕರೊಂದಿಗೆ

ಆಪಲ್ ವಿಷನ್ ಪ್ರೊ ಕಮರ್ಷಿಯಲ್ ವೀಕ್ಷಕವನ್ನು ಬಳಸಿಕೊಂಡು ನೇತ್ರದ ಶಸ್ತ್ರಚಿಕಿತ್ಸೆಯನ್ನು ಕ್ಯಾಟಾನಿಯಾ ಪಾಲಿಕ್ಲಿನಿಕ್‌ನಲ್ಲಿ ನಡೆಸಲಾಯಿತು…

3 ಮೇ 2024

ಮಕ್ಕಳಿಗಾಗಿ ಬಣ್ಣ ಪುಟಗಳ ಪ್ರಯೋಜನಗಳು - ಎಲ್ಲಾ ವಯಸ್ಸಿನವರಿಗೆ ಮ್ಯಾಜಿಕ್ ಜಗತ್ತು

ಬಣ್ಣಗಳ ಮೂಲಕ ಉತ್ತಮವಾದ ಮೋಟಾರು ಕೌಶಲ್ಯಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದು ಬರವಣಿಗೆಯಂತಹ ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ಕೌಶಲ್ಯಗಳಿಗೆ ಮಕ್ಕಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ. ಬಣ್ಣ ಹಾಕಲು...

2 ಮೇ 2024

ಭವಿಷ್ಯ ಇಲ್ಲಿದೆ: ಶಿಪ್ಪಿಂಗ್ ಉದ್ಯಮವು ಜಾಗತಿಕ ಆರ್ಥಿಕತೆಯನ್ನು ಹೇಗೆ ಕ್ರಾಂತಿಗೊಳಿಸುತ್ತಿದೆ

ನೌಕಾ ವಲಯವು ನಿಜವಾದ ಜಾಗತಿಕ ಆರ್ಥಿಕ ಶಕ್ತಿಯಾಗಿದೆ, ಇದು 150 ಶತಕೋಟಿ ಮಾರುಕಟ್ಟೆಯತ್ತ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿದೆ...

1 ಮೇ 2024

ಆರ್ಟಿಫಿಶಿಯಲ್ ಇಂಟೆಲಿಜೆನ್ಸ್ ಮೂಲಕ ಸಂಸ್ಕರಿಸಿದ ಮಾಹಿತಿಯ ಹರಿವನ್ನು ನಿಯಂತ್ರಿಸಲು ಪ್ರಕಾಶಕರು ಮತ್ತು OpenAI ಒಪ್ಪಂದಗಳಿಗೆ ಸಹಿ ಹಾಕುತ್ತಾರೆ

ಕಳೆದ ಸೋಮವಾರ, ಫೈನಾನ್ಶಿಯಲ್ ಟೈಮ್ಸ್ ಓಪನ್ ಎಐ ಜೊತೆ ಒಪ್ಪಂದವನ್ನು ಪ್ರಕಟಿಸಿತು. FT ತನ್ನ ವಿಶ್ವ ದರ್ಜೆಯ ಪತ್ರಿಕೋದ್ಯಮಕ್ಕೆ ಪರವಾನಗಿ ನೀಡುತ್ತದೆ…

30 ಏಪ್ರಿಲ್ 2024

ನಿಮ್ಮ ಭಾಷೆಯಲ್ಲಿ ಹೊಸತನವನ್ನು ಓದಿ

ನಾವೀನ್ಯತೆ ಸುದ್ದಿಪತ್ರ
ನಾವೀನ್ಯತೆಯ ಪ್ರಮುಖ ಸುದ್ದಿಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳಬೇಡಿ. ಇಮೇಲ್ ಮೂಲಕ ಅವುಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸೈನ್ ಅಪ್ ಮಾಡಿ.

ನಮ್ಮನ್ನು ಅನುಸರಿಸಿ

ಟ್ಯಾಗ್