সম্পত্তি বা পদ্ধতি হিসাবে আমার কোনও "গণিত" মান প্রকাশ করা উচিত?


13

আমার কাছে একটি সি # শ্রেণি রয়েছে যা একটি ওয়েব সামগ্রী পরিচালনা ব্যবস্থাতে একটি সামগ্রীর ধরণের প্রতিনিধিত্ব করে।

আমাদের এমন একটি ক্ষেত্র রয়েছে যা কোনও ওয়েব সামগ্রীকে সম্পাদক কীভাবে অবজেক্টটি প্রদর্শিত হয় তার জন্য একটি এইচটিএমএল টেমপ্লেট প্রবেশ করতে দেয়। এটি মূলত এইচটিএমএল স্ট্রিংয়ে অবজেক্ট প্রোপার্টি মানগুলি প্রতিস্থাপনের জন্য হ্যান্ডেলবার্স সিনট্যাক্স ব্যবহার করে:

<h1>{{Title}}</h1><p>{{Message}}</p>

শ্রেণি নকশার দৃষ্টিকোণ থেকে, আমি কি সম্পত্তি বা পদ্ধতি হিসাবে ফর্ম্যাট করা এইচটিএমএল স্ট্রিং (বিকল্প সহ) প্রকাশ করা উচিত ?

সম্পত্তি হিসাবে উদাহরণ:

public class Example
{
  private string _template;
  public string Title { get; set; }
  public string Message { get; set; }
  public string Html 
  {
    get
    {
      return this.ToHtml();
    }
    protected set { }
  }

  public Example(Content content)
  {
    this.Title = content.GetValue("title") as string;
    this.Message = content.GetValue("message") as string;
    _template = content.GetValue("template") as string;
  }

  private string ToHtml()
  {
    // Perform substitution and return formatted string.
  }  
}

পদ্ধতি হিসাবে উদাহরণ:

public class Example
{
  private string _template;
  public string Title { get; set; }
  public string Message { get; set; }

  public Example(Content content)
  {
    this.Title = content.GetValue("title") as string;
    this.Message = content.GetValue("message") as string;
    _template = content.GetValue("template") as string;
  }

  public string ToHtml()
  {
    // Perform substitution and return formatted string.
  }  
}

আমি কোনও ডিজাইনের দৃষ্টিকোণ থেকে নিশ্চিত নই যে এটির কোনও পার্থক্য রয়েছে বা এর কারণগুলির কারণে কেন একটি পদ্ধতির অপরটির চেয়ে ভাল হয়?


বৈশিষ্ট্যগুলির সুবিধা, সেগুলি এক্সএমএল বা জেএসওনে সিরিয়ালযুক্ত করা হয়েছে তবে এটি আমার মনে হয়।
কেনার্ড

1
সম্পত্তিগুলির রাষ্ট্রীয় তথ্য উপস্থাপন করা উচিত। তারা গণনা করা হয় বা না তা বিবেচনা করে না। এটি তাদের এক্সপ্রেশনগুলিতে ব্যবহার করা সহজ করে তোলে। এইচটিএমএল কোনও অবজেক্টের অবস্থার প্রতিনিধিত্ব করে কিনা তা কেবল আপনিই জানেন।
এএকটিএলগ্রাফিকাল

উত্তর:


18

আপডেট: 2014 সালের মে মাসে এই প্রশ্নটি আমার ব্লগের বিষয় ছিল । মহান প্রশ্নের জন্য ধন্যবাদ!


রবার্ট হার্ভির উত্তরে যুক্ত করার জন্য : একটি সম্পত্তি হওয়া উচিত:

  • যৌক্তিকভাবে শ্রেণীর একটি সম্পত্তি , যেভাবে এটির রঙ বা বছর বা মডেল বলে তা কোনও গাড়ির বৈশিষ্ট্য।

  • এর চেয়ে বেশি নয়, আসুন, ক্ষেত্র থেকে আনার চেয়ে দশগুণ কম গণনা করতে হবে।

  • ডিবাগ করার সময় এমন কিছু মনে করা আপনার আপত্তি নেই। ভিএস ডিবাগার স্বয়ংক্রিয়ভাবে গুণাগুণ গণনা করে।

  • ব্যর্থ হতে পারে না। গ্রাহকগণের সর্বদা একটি মান ফেরত দেওয়া উচিত বস্তুর অবস্থা কী তা নয় should

আমি তোমার প্রস্তাবিত মনে করি না Htmlসম্পত্তি হিট কোনো ঐ। এটি সমস্ত সম্পত্তি না চাপলে এটিকে সম্পত্তি হিসাবে পরিণত করবেন না ।


"ব্যর্থ হতে পারছে না Get সম্পত্তিগুলি নিষ্পত্তি হওয়ার পরে কি তার ব্যতিক্রমগুলি ছুঁড়ে দেওয়া উচিত নয়?
স্টিফেন

6

ToHtmlএটি সঠিকভাবে একটি পদ্ধতি, যেমনটি আপনি উভয় ক্ষেত্রেই লিখেছেন। এটি প্রকাশ্যে প্রকাশ করুন।

Knerd একটি ভাল পয়েন্ট তোলে: বৈশিষ্ট্য সিরিয়াল করা যেতে পারে। আপনি কখনই এইচটিএমএল থেকে ডিসরিয়ালাইজ করবেন না, সুতরাং এটিকে সেই দৃষ্টিকোণ থেকে সম্পত্তি হিসাবে গড়ে তোলার পক্ষে খুব বেশি অর্থ হয় না।

ওআরএম এবং সংগ্রহস্থল অবজেক্টগুলি যেভাবে কাজ করে তার সাথে সামঞ্জস্যপূর্ণ: একটি রেকর্ড বা টিপলে ক্ষেত্রগুলি বৈশিষ্ট্যগুলির সাথে প্রতিনিধিত্ব করা হয়, তবে আপনি কোনও পদ্ধতি ব্যবহার করে রেকর্ড (বা এর কোনও ফর্ম ) পুনরুদ্ধার করেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.