আমি একটি রেস্টলফুল এপিআই বিকাশ করছি এবং আমি মনে করি আমার সংস্থাগুলির জন্য ডিএওগুলি ব্যবহার করা সুবিধাজনক কারণ যদিও আমি কেবল সেগুলি সঞ্চয় করার জন্য মেমরি ব্যবহার করার পরিকল্পনা করি, তবে আমি যদি আমার লাইব্রেরি ব্যবহার করি তবে তারা যদি তাদের ব্যবহার করার সিদ্ধান্ত নেন তবে আমি তার দরজা বন্ধ করতে চাই না ডিএও-র জন্য একটি ডাটাবেস বাস্তবায়ন।
আমার প্রশ্ন হ'ল ডিএও সিঙ্গলটন হওয়া উচিত কি না। যদি এটি না হয় তবে পরিষেবাটির ডিএওর একটি উদাহরণ থাকবে এবং এটি মোটামুটিভাবে দেখতে হবে:
@Path("eventscheduler")
public class EventSchedulerService {
private IEventSchedulerDao dao = new EventSchedulerDao();
// in case a different implementation is to be used
public void setEventSchedulerDao(IEventSchedulerDao dao) {
this.dao = dao;
}
@Path("{uniqueName}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Tournament getTournament(@PathParam("name") String uniqueName) {
return dao.get(uniqueName);
}
@Path("create")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Tournament createTournament(Tournament tournament) {
return dao.create(tournament);
}
}
যদিও ডিএও যদি সিঙ্গলটন হত তবে আমার ধারণা আমি প্রথম লাইনে খুব একটা পার্থক্য করতে পারব না:
private IEventSchedulerDao dao = EventSchedulerDao.getInstance();
আমাকে এখনও একটি IEventSchedulerDao
উদাহরণ ব্যবহার করতে হবে , তবে আমি অনুমান করি যে সমস্ত সিলেটলেট এই অধিকারটির মতো কাজ করে? কোনও কারণে আমি সর্বদা সিঙ্গলেটগুলি স্থির পদ্ধতির সাথে সম্পর্কিত করি, সুতরাং কোনও সিঙ্গলটন উদাহরণটি ব্যবহারকারীর কাছে দৃশ্যমান হওয়ার পরিবর্তে এটি getInstance()
গোপন করা হবে এবং তিনি কেবল EventSchedulerDao.get(name)
স্ট্যাটিক ফ্যাশনে ব্যবহার করবেন ... ইত্যাদি। এটা কি জিনিস নাকি এই শুধু আমার?
সুতরাং, আমার বা আমার সিঙ্গলটন ডিএও থাকা উচিত নয়?
এবং একটি পার্শ্ব প্রশ্ন হিসাবে, ব্যবহারকারীর নিজস্ব ডিএও বাস্তবায়নের জন্য খোলা দরজা থাকা কি আমার দৃষ্টিভঙ্গি ঠিক আছে?